利用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按照多个字符对字符串进行分割的方法
Mar 17 Python
Python实现身份证号码解析
Sep 01 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 Python
Python实现购物程序思路及代码
Jul 24 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
详谈python read readline readlines的区别
Sep 22 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
详解python的四种内置数据结构
Mar 19 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
详解Pymongo常用查询方法总结
Jan 29 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
jquery replace方法去空格
2017/05/08 jQuery
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
委托证明模板
2014/09/16 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
张丽莉观后感
2015/06/16 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python