Matlab交互編程——疫情數(shù)據(jù)的可視化

       作為流行的商業(yè)數(shù)學(xué)軟件,MATLAB不僅可以作為離線數(shù)值分析的工具,更可以實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的爬取和地理數(shù)據(jù)的可視化。本期我們將以新冠疫情數(shù)據(jù)的可視化為例,帶領(lǐng)大家在 MATLAB 中下載線上數(shù)據(jù)并完成疫情地圖的繪制。

       通過本案例,您將學(xué)會(huì):

       ? 如何更改 MATLAB App Designer的程序圖標(biāo)和Figure圖框的圖標(biāo);

       ? 如何在 App Designer 中創(chuàng)建有別于Waitbar的進(jìn)度條(uiprogressdlg);

       ? 如何使用 App Designer 下拉框;

       ? 如何使用 MATLAB 抓取網(wǎng)絡(luò)數(shù)據(jù);

       ? 如何使用 MATLAB 繪制數(shù)據(jù)地圖;

       ? 如何創(chuàng)建固定大小、固定位置、無標(biāo)題欄的 Figure 對(duì)話框;

       ? 如何在MATLAB中將13位時(shí)間戳轉(zhuǎn)化為中國標(biāo)準(zhǔn)時(shí)間;

       ? 如何批量執(zhí)行表達(dá)式 (eval 函數(shù));

       ? 如何將 App Designer 程序發(fā)布為獨(dú)立桌面 App;

       ? 如何使用包命名空間

實(shí)現(xiàn)效果:

gui1.png  
gui2.png
cmd.png

用到的函數(shù):

函數(shù)名

函數(shù)類型

重要性

功能

getCoronavirusData

自定義函數(shù)


獲取新冠疫情數(shù)據(jù)

weboptions

系統(tǒng)函數(shù)


指定Web服務(wù)請(qǐng)求參數(shù)

webread

系統(tǒng)函數(shù)

★★★★★

從Web讀取內(nèi)容

eval

系統(tǒng)函數(shù)


執(zhí)行Matlab表達(dá)式

sortrows

系統(tǒng)函數(shù)


對(duì)矩陣行或表進(jìn)行排序

writetable

系統(tǒng)函數(shù)


將表寫入文件

readtable

系統(tǒng)函數(shù)


基于文件創(chuàng)建表

isempty

系統(tǒng)函數(shù)


確定數(shù)組是否為空

cell2mat

系統(tǒng)函數(shù)


將元胞數(shù)組轉(zhuǎn)化為普通數(shù)組

table

系統(tǒng)函數(shù)


創(chuàng)建表數(shù)組

getStandardTime

自定義函數(shù)


轉(zhuǎn)換 Unix 時(shí)間為中國標(biāo)準(zhǔn)時(shí)間

fix

系統(tǒng)函數(shù)


朝零四舍五入

datestr

系統(tǒng)函數(shù)


將日期和時(shí)間轉(zhuǎn)化成字符串格式

datenum

系統(tǒng)函數(shù)


將日期和時(shí)間轉(zhuǎn)化為日期序列值

plotCoronavirusData

自定義函數(shù)


繪制新冠疫情分布數(shù)據(jù)

geobubble

系統(tǒng)函數(shù)

★★★★★

以可視化方式呈現(xiàn)地理數(shù)據(jù)

uiprogressdlg

系統(tǒng)函數(shù)

★★★

創(chuàng)建進(jìn)度對(duì)話框

figure

系統(tǒng)函數(shù)

★★★

創(chuàng)建圖窗窗口

setAppDesignerIcon

自定義函數(shù)


設(shè)置App Designer 窗口圖標(biāo)

setFigureIcon

自定義函數(shù)


設(shè)置 Figure 窗口圖標(biāo)

核心代碼:

    data = webread(url, webread_option);           % 調(diào)用 webread 下載并解析疫情數(shù)據(jù)

    map = geobubble(canvas, data, 'latitude', 'longitude');    % 繪制疫情地圖

實(shí)現(xiàn)過程:

1.     打開App Designer,拖拽繪制下圖所示的控件:

gui3.jpg  

控件名

控件類型

備注

DataTable

用于顯示疫情數(shù)據(jù)

Panel

面板

用于繪制疫情地圖

DataSelect

下拉框

選擇疫情數(shù)據(jù)

ColorSelect

下拉框

選擇繪圖顏色

PlotInPanel

按鈕

在面板中繪制疫情地圖

PlotInPopupWindow

按鈕

在彈窗中繪制疫情地圖

2.    設(shè)置公有屬性

   屬性名

屬性類型

備注

CoronavirusData

public

用于保存疫情數(shù)據(jù)表

PlotPara

public

用于保存繪圖參數(shù)

3.    添加Startup 回調(diào)

a.png

b.png

4.     創(chuàng)建私有函數(shù) getPlotPara, 用于設(shè)置繪圖參數(shù)

c.png

5.    創(chuàng)建下拉框 app.DataSelect和app.ColorSelect的回調(diào)函數(shù),每次下拉框值改變時(shí),更新繪圖參數(shù)。

d.png

6.     創(chuàng)建按鈕 app.PlotInPanel 回調(diào)函數(shù)

e.png

7.     創(chuàng)建按鈕 app.PlotInPopupWindows回調(diào)函數(shù)

f.png

8.     編寫 funs.getCoronavirusData函數(shù),獲取疫情數(shù)據(jù)

g.png

9.     編寫plotCoronavirusData函數(shù)

h.png

10.     保存并運(yùn)行。

11.     選擇設(shè)計(jì)器->共享->獨(dú)立桌面

ccc.png

12.     填寫程序信息,選擇程序圖標(biāo)和啟動(dòng)圖片; 

22.png

13.     選擇程序運(yùn)行所需的data和figure文件夾;

33.png

14.     選擇 Package,封裝程序;

疫情數(shù)據(jù)來源:https://lab.isaaclin.cn/nCoV/

參考鏈接:https://zhuanlan.zhihu.com/p/30747143

MATLAB版本:2019a

付費(fèi)內(nèi)容包括程序源碼和知識(shí)點(diǎn)歸納。

以下內(nèi)容為付費(fèi)內(nèi)容,請(qǐng)購買后觀看

   8人購買

程序源碼和知識(shí)點(diǎn)歸納。

App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

11
6
5