利用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中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
用C++封装MySQL的API的教程
May 06 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
Tornado 多进程实现分析详解
Jan 12 Python
Python实现的排列组合、破解密码算法示例
Apr 12 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
基于Django实现日志记录报错信息
Dec 17 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 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
第十节--抽象方法和抽象类
2006/11/16 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
PHP运行模式汇总
2016/11/06 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
javascript radio 联动效果
2009/03/04 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
JS实现随机点名器
2020/04/12 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
python绘制立方体的方法
2018/07/02 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
python 搜索大文件的实例代码
2019/07/08 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
加拿大探亲邀请信
2014/01/28 职场文书
项目合作协议书范本
2014/04/16 职场文书
农村党员对照检查材料
2014/09/24 职场文书
设备收款委托书范本
2014/10/02 职场文书
党员转正意见怎么写
2015/06/03 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL