利用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的消息队列包SnakeMQ使用初探
Jun 29 Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 Python
基于Python实现的微信好友数据分析
Feb 26 Python
Python requests发送post请求的一些疑点
May 20 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
Django分页功能的实现代码详解
Jul 29 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 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+APACHE实现用户论证的方法
2006/10/09 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
python进行两个表格对比的方法
2018/06/27 Python
Sanic框架应用部署方法详解
2018/07/18 Python
Python 处理图片像素点的实例
2019/01/08 Python
Python I/O与进程的详细讲解
2019/03/08 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
python实现数字炸弹游戏程序
2020/07/17 Python
python线程里哪种模块比较适合
2020/08/02 Python
关于python中导入文件到list的问题
2020/10/31 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
英语专业推荐信
2013/11/16 职场文书
事业单位接收函
2014/01/10 职场文书
开工仪式主持词
2014/03/20 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP