利用python绘制中国地图(含省界、河流等)


Posted in Python onSeptember 21, 2020

我们可以使用Basemap这个工具包来实现中国地图的绘制

首先需要加载一些包:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

Basemap包就是气象画图的利器,现在我们就可以愉快的画图了!

plt.figure(1)
map=Basemap()
map.drawcoastlines()
plt.title(r'$World\ Map$',fontsize=24)
plt.show()

第2行创建一个地图,第3行添加海岸线,这样一个世界地图就出来了,怎么样,很简单吧。(plt.show()这行代码是用来显示图片的)

利用python绘制中国地图(含省界、河流等)

我们发现这只是海岸线图,那么怎么将国界线添加上去呢?很简单,只要添加一行代码就可以了。

map.drawcountries()

利用python绘制中国地图(含省界、河流等)

那么怎么添加河流呢?可能有些同学已经猜到了,就是drawrivers()

map.drawrivers(color='blue',linewidth=0.3)

利用python绘制中国地图(含省界、河流等)

好了,现在我们可以开始画中国地图了!
其实只要在创建地图时指定一下范围就可以了,查阅资料发现,中国的经纬度范围是东经135度2分30秒-东经73度40分,北纬3度52分-北纬53度33分。

map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)

利用python绘制中国地图(含省界、河流等)

好了,一个中国地图就出来了!但是我们发现,好像少了点什么,没错就是省界。我们可以在https://gadm.org/download_country_v3.html下载中国大陆和台湾省的行政区域的shape文件,下载后解压,然后加入下面的代码。

CHN='G:\python_material\MapOfChina'

CHN的值就是解压后的地图文件所在的地址。
下面我们就可以加入省界了!

map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1',
         'states',drawbounds=True)

别忘了把台湾省加上去

map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1',
         'taiwan',drawbounds=True)

利用python绘制中国地图(含省界、河流等)

还可以在地图上加上经纬度,比如我们要画5条经纬线,可以这么做:

parallels = np.linspace(3,55,5)
map.drawparallels(parallels,labels=[True,False,False,False])
meridians = np.linspace(70,140,5)
map.drawmeridians(meridians,labels=[False,False,False,True])

利用python绘制中国地图(含省界、河流等)

大功告成!但是,emmm,我们发现好像有点歪?我们可以在创建地图时选择投影参数。

map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=137,urcrnrlat=54,
      projection = 'lcc', lat_1 = 33, lat_2 = 45, lon_0 = 100)

利用python绘制中国地图(含省界、河流等)

这回正式的完成了!

附上所有代码:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(1)
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54,
      projection = 'lcc', lat_1 = 33, lat_2 = 45, lon_0 = 100)
map.drawcoastlines()
map.drawcountries()
map.drawrivers(color='blue',linewidth=0.3)
CHN='G:\python_material\MapOfChina'
map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1',
         'states',drawbounds=True)
map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1',
         'taiwan',drawbounds=True)
parallels = np.linspace(3,55,5)
map.drawparallels(parallels,labels=[True,False,False,False])
meridians = np.linspace(70,140,5)
map.drawmeridians(meridians,labels=[False,False,False,True])
plt.title(r'$China\ Map$',fontsize=24)

plt.show()

以上就是利用python绘制中国地图的详细内容,更多关于python 绘制地图的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python里使用正则的findall函数的实例详解
Oct 19 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
Python函数返回不定数量的值方法
Jan 22 Python
Python 的AES加密与解密实现
Jul 09 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
python wxpython 实现界面跳转功能
Dec 17 Python
python3读取csv文件任意行列代码实例
Jan 13 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
python中使用.py配置文件的方法详解
Nov 23 Python
详解python日志输出使用配置文件格式
Feb 10 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 #Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 #Python
python3.8动态人脸识别的实现示例
Sep 21 #Python
如何在Anaconda中打开python自带idle
Sep 21 #Python
Python 实现国产SM3加密算法的示例代码
Sep 21 #Python
python如何实现DES加密
Sep 21 #Python
如何从csv文件构建Tensorflow的数据集
Sep 21 #Python
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
js继承实现方法详解
2016/12/16 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
Python里disconnect UDP套接字的方法
2015/04/23 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
2017/11/06 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
耐克中国官方商城:Nike中国
2018/10/18 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
酒店开业庆典主持词
2014/03/21 职场文书
项目建议书范文
2014/05/12 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
银行委托书范本
2014/09/28 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
初中班主任心得体会
2016/01/07 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
JavaScript实现简单拖拽效果
2021/09/15 Javascript
如何在Python中妥善使用进度条详解
2022/04/05 Python