【基础教程】matlab绘制疫情地图

时间:2024-04-01 16:28:07

 

      目前暂时没有大佬用matlab绘制疫情地图,其实MATLAB绘制地图还是相对容易的,于是就拿了两个小时,专门研究了一下,遂成此文。

一、准备工作

      开始之前需要准备好malab,中国地图shp文件,m_map工具包。

中国地图shp文件可以在下面的链接中下载:

https://gadm.org/download_country_v3.html

数据来自2020年2月2日支付宝疫情播报。

二、实际代码

%% mapchina

clc;clear;clf

% shapefile中都包含了国界和省界

fnshp_L='D:\Matlab\Matlab画地图\国家基础地理信息系统数据\国界与省界\bou2_4l.shp';%ShapeType: 'PolyLine'

fnshp_P='D:\Matlab\Matlab画地图\国家基础地理信息系统数据\国界与省界\bou2_4p.shp';%ShapeType: 'Polygon'

infoL = shapeinfo(fnshp_L);

infoP = shapeinfo(fnshp_P);

readL=shaperead(fnshp_L);

readP=shaperead(fnshp_P);

subplot(121);mapshow(readL);title('PolyLine of China')

subplot(122);

mapshow(readP);

title('Polygon of China');

%bbox=[114,29;120,35];%安徽的地理位置

%S = shaperead(fnshp_P,'BoundingBox',bbox);

color_hot=colormap(hot);

pronvince1={'湖北省','浙江省','广东省','河南省','湖南省','安徽省','江西省','重庆市','江苏省','四川省','山东省','北京市','上海市','福建省','陕西省',...

    '广西壮族自治区','河北省','云南省','黑龙江省','辽宁省','天津市','海南省','山西省','甘肃省',...

    '贵州省', '宁夏回族自治区','内蒙古自治区','吉林省','香港特别行政区','青海省','**自治区','*自治区'};

count=[9074,661 604 493 463 340 333 262 236 231 225 183 177 159 116 111 104 99 95 64 63 56 45 40 38 28 27 23 21 14 11 1];

n=1;

figure(2)

for i=1:numel(pronvince1)

      S = shaperead(fnshp_P, 'UseGeoCoords', true,...

  'Selector',{@(NAME) strcmp(NAME,pronvince1{i}), 'NAME'});

    k=i;

    if count(k)>1000

        yanse=color_hot(10,:);

    else if count(k)>500

            yanse=color_hot(15,:);

        else if count(k)>100

                yanse=color_hot(20,:);

            else if  count(k)>10

                    yanse=color_hot(30,:);

                else

                    yanse=color_hot(40,:);

                end

            end

        end

    end

      geoshow(S,'FaceColor',yanse);hold on

end

 

三、 运行结果

【基础教程】matlab绘制疫情地图【基础教程】matlab绘制疫情地图

完整代码请关注公众号【基础教程】matlab绘制疫情地图