Matlab交互編程——疫情數據的可視化
作為流行的商業數學軟件,MATLAB不僅可以作為離線數值分析的工具,更可以實現網絡數據的爬取和地理數據的可視化。本期我們將以新冠疫情數據的可視化為例,帶領大家在 MATLAB 中下載線上數據并完成疫情地圖的繪制。
通過本案例,您將學會:
? 如何更改 MATLAB App Designer的程序圖標和Figure圖框的圖標;
? 如何在 App Designer 中創建有別于Waitbar的進度條(uiprogressdlg);
? 如何使用 App Designer 下拉框;
? 如何使用 MATLAB 抓取網絡數據;
? 如何使用 MATLAB 繪制數據地圖;
? 如何創建固定大小、固定位置、無標題欄的 Figure 對話框;
? 如何在MATLAB中將13位時間戳轉化為中國標準時間;
? 如何批量執行表達式 (eval 函數);
? 如何將 App Designer 程序發布為獨立桌面 App;
? 如何使用包命名空間;
實現效果:
用到的函數:
函數名 |
函數類型 |
重要性 |
功能 |
自定義函數 |
獲取新冠疫情數據 |
||
系統函數 |
指定Web服務請求參數 |
||
系統函數 |
★★★★★ |
從Web讀取內容 |
|
系統函數 |
執行Matlab表達式 |
||
系統函數 |
對矩陣行或表進行排序 |
||
系統函數 |
將表寫入文件 |
||
系統函數 |
基于文件創建表 |
||
系統函數 |
確定數組是否為空 |
||
系統函數 |
將元胞數組轉化為普通數組 |
||
系統函數 |
創建表數組 |
||
自定義函數 |
轉換 Unix 時間為中國標準時間 |
||
系統函數 |
朝零四舍五入 |
||
系統函數 |
將日期和時間轉化成字符串格式 |
||
系統函數 |
將日期和時間轉化為日期序列值 |
||
自定義函數 |
繪制新冠疫情分布數據 |
||
系統函數 |
★★★★★ |
以可視化方式呈現地理數據 |
|
系統函數 |
★★★ |
創建進度對話框 |
|
系統函數 |
★★★ |
創建圖窗窗口 |
|
setAppDesignerIcon |
自定義函數 |
設置App Designer 窗口圖標 |
|
setFigureIcon |
自定義函數 |
設置 Figure 窗口圖標 |
核心代碼:
data = webread(url, webread_option); % 調用 webread 下載并解析疫情數據
map = geobubble(canvas, data, 'latitude', 'longitude'); % 繪制疫情地圖
實現過程:
1. 打開App Designer,拖拽繪制下圖所示的控件:
控件名 |
控件類型 |
備注 |
DataTable |
表 |
用于顯示疫情數據 |
Panel |
面板 |
用于繪制疫情地圖 |
DataSelect |
下拉框 |
選擇疫情數據 |
ColorSelect |
下拉框 |
選擇繪圖顏色 |
PlotInPanel |
按鈕 |
在面板中繪制疫情地圖 |
PlotInPopupWindow |
按鈕 |
在彈窗中繪制疫情地圖 |
2. 設置公有屬性
屬性名 |
屬性類型 |
備注 |
CoronavirusData |
public |
用于保存疫情數據表 |
PlotPara |
public |
用于保存繪圖參數 |
3. 添加Startup 回調

4. 創建私有函數 getPlotPara, 用于設置繪圖參數
5. 創建下拉框 app.DataSelect和app.ColorSelect的回調函數,每次下拉框值改變時,更新繪圖參數。
6. 創建按鈕 app.PlotInPanel 回調函數

7. 創建按鈕 app.PlotInPopupWindows回調函數

8. 編寫 funs.getCoronavirusData函數,獲取疫情數據

9. 編寫plotCoronavirusData函數

10. 保存并運行。
11. 選擇設計器->共享->獨立桌面

12. 填寫程序信息,選擇程序圖標和啟動圖片;

13. 選擇程序運行所需的data和figure文件夾;
14. 選擇 Package,封裝程序;
疫情數據來源:https://lab.isaaclin.cn/nCoV/
參考鏈接:https://zhuanlan.zhihu.com/p/30747143
MATLAB版本:2019a
付費內容包括程序源碼和知識點歸納。
以下內容為付費內容,請購買后觀看
8人購買
程序源碼和知識點歸納。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















