利用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插入排序算法的实现代码
Nov 21 Python
Python中自定义函数的教程
Apr 27 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
python 多个参数不为空校验方法
Feb 14 Python
python pip源配置,pip配置文件存放位置的方法
Jul 12 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
5款实用的python 工具推荐
Oct 13 Python
python 获取字典键值对的实现
Nov 12 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获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
jquery 上下滚动广告
2009/06/17 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
Zabbix实现微信报警功能
2016/10/09 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
详细分析python3的reduce函数
2017/12/05 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
餐饮总经理岗位职责
2014/03/07 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
教学副校长工作总结
2015/08/13 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
Python 中面向接口编程
2022/05/20 Python