利用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使用functools模块中的partial函数生成偏函数
Jul 02 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
Python中的函数作用域
May 07 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
使用Python解决图表与画布的间距问题
Apr 11 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/12/05 PHP
php iconv() : Detected an illegal character in input string
2010/12/05 PHP
php ios推送(代码)
2013/07/01 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
JS继承用法实例分析
2015/02/05 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
python通过http下载文件的方法详解
2019/07/26 Python
python 读取二进制 显示图片案例
2020/04/24 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
简历中自我评价分享
2013/10/09 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏