1 简介

MATLAB是著名的科学软件,具有绘图、编程、仿真等强大的功能。现在介绍MATLAB绘制中国地图的三种方式,分别是(1)使用m_map工具箱命令绘制中国地图;(2)使用mapshow和geoshow命令直接绘制中国地图;(3)使用worldmap+geoshow命令绘制中国地图。

2 完整代码

%-- 分省中国地图在MATLAB中的画法 --%

% 地图数据来源:国家基础地理信息系统网站

% 人口数据来源:国家统计年鉴2011版

%% 载入地图数据

% 载入各省的多边形数据

sheng=shaperead('maps/bou2_4p.shp', 'UseGeoCoords', true);% 省

% 检查数据发现中午名称为乱码,可能是由于字符编码引起的,需要纠正文件导入时出现的乱码

% 中文名称记录在相应的dbf文件中,可以使用Excel打开,并且不会出现乱码,截取其中的中文保存为文本文件

% 然后在导入工作区,并将其保存为*.mat格式文件,随用随取。

% 依次替换sheng数据中的乱码【算是变通之法,有谁知道更好的方法一定告诉我哦】

load chinese_name.mat % 省,省会,主要城市的正确中文

for i=1:length(sheng)

sheng(i).NAME=sheng_chinese_name{i}; % 纠正中文显示错误

end

unique(sheng_chinese_name) % 含有34个省(直辖市)的数据

length(sheng) % 共分为925个区块

%% 使用importdata向导导入2011年全国31个省的人口数据

% data为人口数目 textdata为省名称

d=importdata('gaodu.txt');

%d=importdata('renkou.txt');

data=d.data; % 海拔高度

textdata=d.textdata; % 相对应的省的名称

%% 定义地图参数

% 针对不同省份,分别设置不同的颜色(FaceColor)

% 定义颜色

k=128;

mycolormap=summer(k);

% 生成不同区域按大小的颜色,按照人口数目多少分别指定不同的颜色

% 人口越多,颜色越突出

geoname={sheng.NAME}';

max_data = max(data);

n=length(data);

mysymbolspec=cell(1,n); % 预定义变量可以加快处理速度

for i=1:n

count=data(i);

mycoloridx=floor( k * count / max_data );

mycoloridx(mycoloridx<1)=1;

myprovince=textdata{i};

geoidx=strmatch(myprovince, geoname);

if numel(geoidx) > 0

province_name=geoname( geoidx(1) );

mysymbolspec{i} = {'NAME', char(province_name), 'FaceColor', mycolormap( mycoloridx, :) };

end

end

%% 显示地图

figure

ax=worldmap('china'); % 使用worldmap的坐标轴作图

setm(ax,'grid','off') % 关闭grid

setm(ax,'frame','off') % 关闭边框

setm(ax,'parallellabel','off') % 关闭坐标轴标记

setm(ax,'meridianlabel','off') % 关闭坐标轴标记

% 最关键的两个语句

symbols=makesymbolspec('Polygon',{'default','FaceColor',[0.9 0.9 0.8],...

'LineStyle','--','LineWidth',0.2,...

'EdgeColor',[0.8 0.9 0.9]},...

mysymbolspec{:}...

);

geoshow(sheng,'SymbolSpec',symbols); % 此处用mapshow投影会不正确

%% 图的标注

% 在图像右侧显示bar

colormap(summer(k))

hcb=colorbar('EastOutside');

step=round(max_data/11);

set(hcb,'YTick',(0:.1:1))

set(hcb,'YTickLabel',num2cell(0:step:max_data))

% 给图像加标题

title('中国各省海拔分布图(单位:m)')

3 仿真结果

4 参考文献

[1]魏红梅, 黄世源, 许顺洪. 基于Matlab的震中分布图绘制软件应用[J]. 地震地磁观测与研究, 2014, 035(005):299-302.​

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

Matlab绘制中国地图(大陆地区)相关推荐

  1. matlab画中国地图深浅,matlab绘制中国地图

    使用mapshow+shapefile的方法: %% mapchina clc;clear;clf % shapefile中都包含了国界和省界 fnshp_L='E:\ChinaMap\国界与省界\b ...

  2. matlab绘制中国地图

    使用mapshow+shapefile的方法: %% mapchina clc;clear;clf % shapefile中都包含了国界和省界 fnshp_L='E:\ChinaMap\国界与省界\b ...

  3. [Echarts可视化] 一.入门篇之简单绘制中国地图和贵州地区

    最近发生了很多事情,去到了一个新环境学习.但是不论在哪里,我都需要不忘初心,坚持做自己喜欢的事情,在CSDN写博客.教学.爱娜.生活等等.         这篇文章主要是通过Echarts可视化介绍入 ...

  4. matlab绘制中国南海地图(九段线小图)

    matlab绘制中国南海地图(九段线小图) 网上关于怎么画南海九段线小图的文章不多,在此记录一下. 绘制南海图 首先要下载中国地图的shp文件,参见上一篇文章. %------------------ ...

  5. 使用raphael.js绘制中国地图

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...

  6. Basemap绘制中国地图

    2022.06.02更新 CHN_adm_shp.zip 网盘下载链接: 链接:https://pan.baidu.com/s/11igf-bfDLuolI5HzEykzMw 提取码:oas6 201 ...

  7. vue中使用echarts绘制中国地图

    首先需要一个绘制中国地图的json文件(资源还在审核,审核过后会重新贴上来) 1.首先引入echarts和json文件,在需要的地方引即可 import echarts from 'echarts'; ...

  8. vue使用echarts来绘制中国地图下钻省市区县级地图

    文章目录 前言 一.echarts 二.使用步骤 1.vue安装.引入echarts 2.使用echarts 总结 前言 公司需要一个中国地图点击可进入省市区县级,但是在我使用echarts绘制中国地 ...

  9. qcustomplot绘制热力图瀑布图_使用REmap绘制中国地图

    上次我们介绍了使用ggplot2绘制中国热力地图,需要温习的同学可以点击以下链接 使用ggplot2绘制中国地图  .在使用ggplot2绘制的时候,需要进行数据处理的步骤比较多,今天我们介绍一个新的 ...

最新文章

  1. 打开eclipse出现an error has occurred.see the loh file
  2. Django框架学习索引
  3. C语言中类型使用的问题
  4. 互联网日报 | 7月19日 星期一 | 美团外卖成立骑手服务部;金山办公发布“文档中台”;一汽-大众奥迪在华销量突破700万辆...
  5. library的英语怎么读音_如何提高英语听力
  6. (75)Xilinx Slice组成结构有哪些?
  7. java filter 调用链_JavaWeb开发Servlet过滤器链执行顺序详解
  8. phpredis报错信息:protocol error, got ‘o‘ as reply type byte解决方案
  9. RuntimeError: expected backend CUDA and dtype Float but got backend CUDA and dtype Long
  10. termux使用无图形界面linux,在termux上使用图形化
  11. Python-英文小说词频统计
  12. spark 读取elasticsearch数据
  13. 交换机的VLAN技术
  14. VS2005发布网站问题及aspnet_merge.exe”已退出,代码为 1的错误以及所有代码文件生成一个dll
  15. 学生专用计算机怎么没声音,班班通电脑没声音了
  16. 实例011:养兔子 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  17. 前端加密 后端Java解密
  18. 15.PG分区表-内置分区表
  19. Unity更改模型中心和旋转中心
  20. Hu不变矩+BP神经网络,实现对图像的分类(pytorch实现)

热门文章

  1. let's encrypt证书安装
  2. Java实现飞机大战游戏思路
  3. 【数学模型】数学模型的简单认识
  4. 小号php平台,唱鸭买小号服务采用的是最新的PHP语言,巧妙地躲开审核
  5. 男孩姓洪取什么名字好听
  6. SELECT查询命令的使用
  7. 无线控制模块c语言编程,51单片机对无线模块nRF24L01简单的控制收发程序
  8. 计算机毕业设计PHP汽车美容店管理系统(源码+程序+VUE+lw+部署)
  9. 起底51信用卡:年赚21亿涉暴力催收,子公司给714高炮导流
  10. AppStore 审核被拒原因记录及解决措施