利用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中非常实用的一些功能和函数分享
Feb 14 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python实现字典依据value排序
Feb 24 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
python实现dijkstra最短路由算法
Jan 17 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
Python-split()函数实例用法讲解
Dec 18 Python
Python 随机按键模拟2小时
Dec 30 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
python playwright 自动等待和断言详解
Nov 27 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
十天学会php(2)
2006/10/09 PHP
MVC模式的PHP实现
2006/10/09 PHP
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
PHP中设置时区方法小结
2012/06/03 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
django rest framework之请求与响应(详解)
2017/11/06 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
pandas分区间,算频率的实例
2019/07/04 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
团员的自我评价
2013/12/01 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
八一建军节活动方案
2014/02/10 职场文书
我的小天地教学反思
2014/04/30 职场文书
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers