利用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如何读取MySQL数据库表数据
Mar 11 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
详解python中的 is 操作符
Dec 26 Python
python和shell获取文本内容的方法
Jun 05 Python
python多线程下信号处理程序示例
May 31 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
Django获取应用下的所有models的例子
Aug 30 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
Python 私有化操作实例分析
Nov 21 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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
PHP5中MVC结构学习
2006/10/09 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
简单的PHP图片上传程序
2008/03/27 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
vue-loader教程介绍
2017/06/14 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python struct.unpack
2008/09/06 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
人力资源管理专业学生自我评价
2013/11/20 职场文书
专升本个人自我评价
2013/12/22 职场文书
医院保洁服务方案
2014/06/11 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
nginx设置资源请求目录的方式详解
2022/05/30 Servers