利用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 (2)
Oct 31 Python
Python获取远程文件大小的函数代码分享
May 13 Python
python映射列表实例分析
Jan 26 Python
Python使用Supervisor来管理进程的方法
May 28 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
python获取地震信息 微信实时推送
Jun 18 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
opencv python如何实现图像二值化
Feb 03 Python
python实现简单飞行棋
Feb 06 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 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
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
javascript中的几个运算符
2007/06/29 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
把pandas转换int型为str型的方法
2019/01/29 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
买卖车协议书
2014/04/21 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
Redis入门教程详解
2021/08/30 Redis
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android