Matlab交互编程——疫情数据的可视化
作为流行的商业数学软件,MATLAB不仅可以作为离线数值分析的工具,更可以实现网络数据的爬取和地理数据的可视化。本期我们将以新冠疫情数据的可视化为例,带领大家在 MATLAB 中下载线上数据并完成疫情地图的绘制。
通过本案例,您将学会:
☑ 如何更改 MATLAB App Designer的程序图标和Figure图框的图标;
☑ 如何在 App Designer 中创建有别于Waitbar的进度条(uiprogressdlg);
☑ 如何使用 App Designer 下拉框;
☑ 如何使用 MATLAB 抓取网络数据;
☑ 如何使用 MATLAB 绘制数据地图;
☑ 如何创建固定大小、固定位置、无标题栏的 Figure 对话框;
☑ 如何在MATLAB中将13位时间戳转化为中国标准时间;
☑ 如何批量执行表达式 (eval 函数);
☑ 如何将 App Designer 程序发布为独立桌面 App;
☑ 如何使用包命名空间;
实现效果:
![gui1.png gui1.png](https://img.jishulink.com/upload/202105/ed5d039e1cb8424797cb9325d6097671.png)
![gui2.png gui2.png](https://img.jishulink.com/upload/202105/58a01e3991474b4baa308b824af60777.png)
![cmd.png cmd.png](https://img.jishulink.com/upload/202105/439def5ced144757b2fac3923e5d8934.png)
用到的函数:
函数名 |
函数类型 |
重要性 |
功能 |
自定义函数 |
获取新冠疫情数据 |
||
系统函数 |
指定Web服务请求参数 |
||
系统函数 |
★★★★★ |
从Web读取内容 |
|
系统函数 |
执行Matlab表达式 |
||
系统函数 |
对矩阵行或表进行排序 |
||
系统函数 |
将表写入文件 |
||
系统函数 |
基于文件创建表 |
||
系统函数 |
确定数组是否为空 |
||
系统函数 |
将元胞数组转化为普通数组 |
||
系统函数 |
创建表数组 |
||
自定义函数 |
转换 Unix 时间为中国标准时间 |
||
系统函数 |
朝零四舍五入 |
||
系统函数 |
将日期和时间转化成字符串格式 |
||
系统函数 |
将日期和时间转化为日期序列值 |
||
自定义函数 |
绘制新冠疫情分布数据 |
||
系统函数 |
★★★★★ |
以可视化方式呈现地理数据 |
|
系统函数 |
★★★ |
创建进度对话框 |
|
系统函数 |
★★★ |
创建图窗窗口 |
|
setAppDesignerIcon |
自定义函数 |
设置App Designer 窗口图标 |
|
setFigureIcon |
自定义函数 |
设置 Figure 窗口图标 |
核心代码:
data = webread(url, webread_option); % 调用 webread 下载并解析疫情数据
map = geobubble(canvas, data, 'latitude', 'longitude'); % 绘制疫情地图
实现过程:
1. 打开App Designer,拖拽绘制下图所示的控件:
![gui3.jpg gui3.jpg](https://img.jishulink.com/upload/202105/a69fcbcb9990408383443d4e34cc7ea2.jpg)
控件名 |
控件类型 |
备注 |
DataTable |
表 |
用于显示疫情数据 |
Panel |
面板 |
用于绘制疫情地图 |
DataSelect |
下拉框 |
选择疫情数据 |
ColorSelect |
下拉框 |
选择绘图颜色 |
PlotInPanel |
按钮 |
在面板中绘制疫情地图 |
PlotInPopupWindow |
按钮 |
在弹窗中绘制疫情地图 |
2. 设置公有属性
属性名 |
属性类型 |
备注 |
CoronavirusData |
public |
用于保存疫情数据表 |
PlotPara |
public |
用于保存绘图参数 |
3. 添加Startup 回调
![b.png b.png](https://img.jishulink.com/upload/202105/5c6dfe25a6ba48168b701f65c1890d21.png)
4. 创建私有函数 getPlotPara, 用于设置绘图参数
![c.png c.png](https://img.jishulink.com/upload/202105/56daa47548b54d009f963e9176212508.png)
5. 创建下拉框 app.DataSelect和app.ColorSelect的回调函数,每次下拉框值改变时,更新绘图参数。
![d.png d.png](https://img.jishulink.com/upload/202105/ab77cfecbcc84f2fb7e5ba179487db21.png)
6. 创建按钮 app.PlotInPanel 回调函数
7. 创建按钮 app.PlotInPopupWindows回调函数
8. 编写 funs.getCoronavirusData函数,获取疫情数据
9. 编写plotCoronavirusData函数
10. 保存并运行。
11. 选择设计器->共享->独立桌面
12. 填写程序信息,选择程序图标和启动图片;
13. 选择程序运行所需的data和figure文件夹;
![33.png 33.png](https://img.jishulink.com/upload/202105/1c635dd2d2954d83b17055ca53ef7d8c.png)
14. 选择 Package,封装程序;
疫情数据来源:https://lab.isaaclin.cn/nCoV/
参考链接:https://zhuanlan.zhihu.com/p/30747143
MATLAB版本:2019a
付费内容包括程序源码和知识点归纳。
查看更多评论 >