用matlab绘制中国地图
reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html
shp: http://muchong.com/html/201304/5748467.html
MATLAB是著名的科学软件,具有绘图、编程、仿真等强大的功能。现在介绍MATLAB绘制中国地图的三种方式,分别是(1)使用m_map工具箱命令绘制中国地图;(2)使用mapshow和geoshow命令直接绘制中国地图;(3)使用worldmap+geoshow命令绘制中国地图。
由于没有找到合适的shp数据包,P/L用同一个shp;老旧的shp中缺少南海部分;
- %E:\wml\matlab_workspace\map\chain_sharp.shp
- close all, clear all, clc, dbstop if error
- infoL=shapeinfo('E:\matlab_workspace\map\chain_sharp.shp')
- infoP=shapeinfo('E:\matlab_workspace\map\chain_sharp.shp')
- ChinaL=shaperead('E:\matlab_workspace\map\chain_sharp.shp');
- ChinaP=shaperead('E:\matlab_workspace\map\chain_sharp.shp');
- bou2_4lx=[ChinaL(:).X];
- bou2_4ly=[ChinaL(:).Y];
- bou2_4px=[ChinaP(:).X];
- bou2_4py=[ChinaP(:).Y];
- figure(1)
- subplot(1,2,1);
- m_proj('lambert','lon',[70,140],'lat',[0,60]);m_plot(bou2_4lx,bou2_4ly,'k');
- m_grid;
- subplot(1,2,2);
- m_proj('robinson','lon',[70,140],'lat',[0,60]);m_plot(bou2_4px,bou2_4py,'k');
- m_grid;
- m_coast('color','r','linewidth',1);
左图使用的兰伯特(lambert)投影,右图使用的罗宾逊(robinson)投影和增加了海岸线(coast)。
- fnshp_L='E:\matlab_workspace\map\chain_sharp.shp';
- fnshp_P='E:\matlab_workspace\map\chain_sharp.shp';
- infoL=shapeinfo(fnshp_L);
- infoP=shapeinfo(fnshp_P);
- readL=shaperead(fnshp_L);
- readP=shaperead(fnshp_P);
- subplot(2,2,1);mapshow(readL,...
- 'DefaultFaceColor', 'green', ...
- 'DefaultEdgeColor', 'black');
- title('China mapshow PolyLine_1')
- subplot(2,2,2);mapshow(readP,...
- 'DefaultFaceColor', 'green', ...
- 'DefaultEdgeColor', 'black');
- title('China mapshow Polygon_2')
- subplot(2,2,3);geoshow(readL, ...
- 'DefaultFaceColor', 'red', ...
- 'DefaultEdgeColor', 'black');
- title('China geoshow PolyLine-3')
- subplot(2,2,4);geoshow(readP, ...
- 'DefaultFaceColor', 'red', ...
- 'DefaultEdgeColor', 'black');
- title('China geoshow Polygon-4')
直接使用MATLAB本身自带的mapshow和geoshow命令绘制中国地图。这两个命令可以直接读取.shp格式的中国国界省界数据。
其中图1和图2使用的mapshow命令画得,并且图1使用的.shp数据为PloyLine属性的,图2使用的.shp数据为Ploygon属性的;图3和图4使用的geoshow命令画得,并且图3使用的.shp数据为PloyLine属性的,图4使用的.shp数据为Ploygon属性的。值得注意的是,title(‘ ’)命令中的下划线可以起到下角标的作用,而中划线就无此作用(对比Figure 2的前两幅图和后两幅图的标题就会发现)。
- fnshp_L='E:\matlab_workspace\map\chain_sharp.shp';
- fnshp_P='E:\matlab_workspace\map\chain_sharp.shp';
- % infoL=shapeinfo(fnshp_L);
- % infoP=shapeinfo(fnshp_P);
- % readL=shaperead('E:\matlab_workspace\map\chain_sharp.shp');
- % readP=shaperead('E:\matlab_workspace\map\chain_sharp.shp');
- %figure(3)
- subplot(2,2,1);
- worldmap('China');
- mapshow(fnshp_L,...
- 'DefaultFaceColor', 'green', ...
- 'DefaultEdgeColor', 'black');
- subplot(2,2,2);
- worldmap([0,55],[70,140]);
- mapshow(fnshp_P,'FaceColor',[0.5,1.0,0.5]);
- setm(gca,'MLineLocation',10);
- setm(gca,'PLineLocation',10);
- setm(gca,'MLabelLocation',20);
- setm(gca,'PLabelLocation',10);
- subplot(2,2,3);
- worldmap('China');
- geoshow(fnshp_L, ...
- 'DefaultFaceColor', 'white', ...
- 'DefaultEdgeColor', 'black');
- subplot(2,2,4);
- worldmap([0,55],[70,140]);
- geoshow(fnshp_P,'FaceColor',[0.5,1.0,0.5]);
- setm(gca,'MLineLocation',10);
- setm(gca,'PLineLocation',10);
- setm(gca,'MLabelLocation',20);
- setm(gca,'PLabelLocation',10);
- title('中国地图','FontSize',14,'FontWeight','Bold')
其中worldmap([0,55],[70,140])为设置显示纬度经度范围;setm(gca,'MLineLocation',10)为设置经度间隔;setm(gca,'PLineLocation',10)为设置纬度间隔;setm(gca,'MLabelLocation',20)为设置经度标签每隔几度;setm(gca,'PLabelLocation',10)为设置纬度标签每隔几度。
可以看出worldmap+mapshow命令不起作用(前两张图不显示);然后worldmap+geoshow命令起作用(后两张图效果不错)。
用matlab绘制中国地图的更多相关文章
- Android 绘制中国地图
最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德.但是当查阅高德地图 ...
- Javascript实战开发:教你使用raphael.js绘制中国地图
最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...
- R绘制中国地图,并展示流行病学数据
流行病学的数据讲究“三间分布”,即人群分布.时间分布和空间分布.其中的“空间分布”最好是在地图上展示,才比较清楚.R软件集统计分析与高级绘图于大成,是最适合做这项工作了.关于地图的绘制过程,谢益辉.邱 ...
- D3.JS V4 绘制中国地图
参考:http://bl.ocks.org/almccon/fe445f1d6b177fd0946800a48aa59c71 http://blog.csdn.net/lzhlzz/article/d ...
- 利用d3.js绘制中国地图
d3.js是一个比較强的数据可视化js工具. 利用它画了一幅中国地图,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3ZhcDE=/ ...
- 用echarts绘制中国地图
在项目中运用到图形展示数据太常见了,echarts是一款使用率非常高的插件工具,很多大平台都是使用echarts: 一般运用到条形.折线.扇形图,今天说一说在中国地图上展示各地数据: 首先要准备中国地 ...
- echarts 如何在世界地图中绘制中国地图
1.导入 world.china.js 这个js是将world.js 文件 以及china.js文件进行合并 (网上一些中国地图勾勒的身份曲线感觉很飘 所以自己加工了一下china.js中的数据, ...
- 基于D3JS绘制中国地图
仿照D3JS官网上的美国地图制作了一个中国版的地图. D3JS官网上的版本: http://bl.ocks.org/NPashaP/a74faf20b492ad377312 中国版的地图效果: 如要制 ...
- R语言作图 绘制中国地图
参考:https://zhuanlan.zhihu.com/p/27360411 第一步.下载shapefile文件 一直都没有找到下载地址,死在了第一步 第二步.导入shp文件 第三步.画图
随机推荐
- C#复习题(概念) --C#学习笔记
第一章 1.公共语言架构(CLI)由哪几部分组成? (1)通用类型系统:定义了一套类型系统的框架,规定了数据类型的声明.使用和管理方法. (2)公共语言规范:一组语言规则的集合 (3)通用中间语言:一 ...
- numpy---one
import numpy as np #创建数组(给array函数传递Python序列对象) a = np.array([1,2,3,4,5]) b = np.array((1,2,3,4,5,6)) ...
- 以CapsNet为例谈深度学习源码阅读
本文的参考的github工程链接:https://github.com/laubonghaudoi/CapsNet_guide_PyTorch 之前是看过一些深度学习的代码,但是没有养成良好的阅读规范 ...
- python记录_day18 反射 判断函数与方法
一.三个内置函数 1.issubclass(a, b) 判断a类是否是b类的子类 class Foo: pass class Zi(Foo): pass class Sun(Zi): pass pr ...
- git中.gitignore文件不起作用的解决
git rm -r --cached . git add . git commit -m 'update .gitignore'
- Leetcode 1014. 在 D 天内送达包裹的能力
1014. 在 D 天内送达包裹的能力 显示英文描述 我的提交返回竞赛 用户通过次数197 用户尝试次数272 通过次数203 提交次数538 题目难度Medium 传送带上的包裹必须在 D 天 ...
- Homebrew 安装mysql
在mac上安装软件,无疑安装一个brew是个很好的选择,关于brew是什么,怎么安装建议去brew官网查看, 附上地址:brew官网 还有一篇博文 http://www.cnblogs.com/xd ...
- Visual Studio 类模板的修改
总共有三个步骤: No1:找到类文件模板路径 我的安装盘在D盘 visual studio 2010: D:\Program Files (x86)\Microsoft Visual Studio 1 ...
- Node.js + Express中间件详解
使用中间件 Express是一种路由和中间件Web框架,它具有自己的最小功能:Express应用程序本质上是一系列中间件函数调用. 中间件函数是可以访问请求对象 (req),响应对象(res)以及应用 ...
- 剑指 offer 面试题31 连续子数组的最大和(动态规划)
求连续子数组的最大和 题目描述 给定一个整形数组,有正数也有负数,数组中连续一个或多个组成一个子数组,求所有子数组的和的最大值,要求时间复杂度为O(n); 测试用例 给定数组 {1,-2,3,10,- ...