利用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生成url短链接的方法
May 04 Python
Python实用日期时间处理方法汇总
May 09 Python
Python实现批量转换文件编码的方法
Jul 28 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
python如何对实例属性进行类型检查
Mar 20 Python
python爬取哈尔滨天气信息
Jul 14 Python
Django中的forms组件实例详解
Nov 08 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
python 爬取小说并下载的示例
Dec 07 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python的Flask框架的简介和安装方法
2015/11/13 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
银行求职信个人范文
2013/12/16 职场文书
求职简历中自我评价
2014/01/28 职场文书
我爱读书演讲稿
2014/05/07 职场文书
高中同学会活动方案
2014/08/14 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
2014年督导工作总结
2014/11/19 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
运动会通讯稿50字
2015/07/20 职场文书
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python