利用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 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
Python批量重命名同一文件夹下文件的方法
May 25 Python
python 循环while和for in简单实例
Aug 16 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
python字符串替换re.sub()方法解析
Sep 18 Python
Python any()函数的使用方法
Oct 28 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
Python根据指定文件生成XML的方法
Jun 29 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
python munch库的使用解析
May 25 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
php学习之function的用法
2012/07/14 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
domReady的实现案例
2016/11/23 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
对python sklearn one-hot编码详解
2018/07/10 Python
Python File(文件) 方法整理
2019/02/18 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
django实现模型字段动态choice的操作
2020/04/01 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
python3中数组逆序输出方法
2020/12/01 Python
新品发布会策划方案
2014/06/08 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
企业法律事务工作总结
2015/08/11 职场文书
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers