用Matlab写的的疫情地图和走势分析

介绍

使用MATLAB软件中的APPdesigner工具和地图工具箱实现中国“新冠肺炎”疫情地图及走势分析。(数据都是来自2020年疫情严重的那段日子,而且不完整)

总体框架

啥描述也么有

具体功能与实现方法

功能1

利用APPdesigner工具和绘图工具将中国地图显示在界面上,该项目只显示到一级行政区即各个省份,自治区和直辖市。

功能2

按照累计确诊人数分别制定不同的颜色,并对地图上的每个省份和地区进行上色。

功能3

功能三:将疫情期间(该项目记录从1月26日后90天)的每天的累计确诊人数,累计死亡人数,累计治愈人数用折线图的方式显示,便于观察其走势变化。

地图实现方法

中国地图shpfile文件(Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。),matlab自带的地图工具包。利用shaperead命令读取shapefile文件的内容并存储到一个数组中,用于后期的地图绘制。
实现效果

部分回调函数代码

function ButtonPushed(app, event)
color_hot=colormap(app.UIAxes,hot);
hold(app.UIAxes, 'on');
            province1={'Anhui','Beijing','Chongqing','Fujian','Gansu','Guangdong','Guangxi','Guizhou','Hainan','Hebei','Heilongjiang','Henan','Hubei','Hunan','Jiangsu','Jiangxi','Jilin','Liaoning','Nei Mongol','Ningxia Hui','Qinghai','Shaanxi','Shandong','Shanghai','Shanxi','Sichuan','Tianjin','Xinjiang Uygur','Xizang','Yunnan','Zhejiang'};
            total_num=[991,593,579,354,139,1577,254,147,168,328,872,1276,68128,1019,653,937,102,146,193,75,18,256,787,628,197,560,189,76,1,184,1268];%417号当日各省份累计确诊人数
for i=1:length(province1)%根据人数判断颜色深度
china=shaperead('C:\Users\Administrator\Desktop\matlab_Project1\Source_Project\China\gadm36_CHN_1.shp', 'UseGeoCoords', true,'Selector',{@(NAME_1) strcmp(NAME_1,province1{i}), 'NAME_1'});
if total_num(i)>10000
deep=color_hot(10,:);
elseif total_num(i)>5000
deep=color_hot(55,:);
elseif total_num(i)>2000
deep=color_hot(58,:);
elseif total_num(i)>1000
deep=color_hot(60,:);
elseif total_num(i)>500
deep=color_hot(61,:);
elseif total_num(i)>200
deep=color_hot(62,:);
elseif total_num(i)>10
deep=color_hot(63,:);
else
deep=color_hot(64,:);
end
geoshow(app.UIAxes,china,'facecolor',deep);
hold(app.UIAxes, 'on');
end
step=6000; %划分间隔
colorbar(app.UIAxes,'southOutside','YTickLabel',num2cell(60000:-step:0));            y=xlsread('C:\Users\Administrator\Desktop\matlab_Project1\Source_Project\Data\总体统计数据.xlsx');%读取有关数据
china_snum=y(:,1).';%累计确诊人数
china_cnum=y(:,2).';%累计治愈人数
china_dnum=y(:,3).';%累计死亡人数
x=1:1:90;
plot(app.UIAxes2,x,china_snum,'r',x,china_cnum,'b',x,china_dnum,'k');
legend(app.UIAxes2,'累计确诊人数','累计治愈人数','累计死亡人数');
end
这部分代码是将疫情数据可视化,就是用不同颜色深度表示疫情人数的多少,很粗糙的显示方式

源程序https://download.csdn.net/download/weixin_46687293/21481554

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值