利用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正则表达式介绍
Aug 06 Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
浅要分析Python程序与C程序的结合使用
Apr 07 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
python reverse反转部分数组的实例
Dec 13 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
Aug 09 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
解决Keras 自定义层时遇到版本的问题
Jun 16 Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
vue实例的选项总结
2020/06/09 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
python访问纯真IP数据库的代码
2011/05/19 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
python 重定向获取真实url的方法
2018/05/11 Python
使用Python更换外网IP的方法
2018/07/09 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python实现XML解析的方法解析
2019/11/16 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python logging模块的使用
2020/09/07 Python
python3访问字典里的值实例方法
2020/11/18 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
C#笔试题
2015/07/14 面试题
借款协议书范本
2014/04/22 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript