利用python绘制中国地图(含省界、河流等)
作者:王琛NUIST 发布时间:2021-12-19 03:19:59
标签:python,绘制,中国,地图
我们可以使用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()这行代码是用来显示图片的)
我们发现这只是海岸线图,那么怎么将国界线添加上去呢?很简单,只要添加一行代码就可以了。
map.drawcountries()
那么怎么添加河流呢?可能有些同学已经猜到了,就是drawrivers()
map.drawrivers(color='blue',linewidth=0.3)
好了,现在我们可以开始画中国地图了!
其实只要在创建地图时指定一下范围就可以了,查阅资料发现,中国的经纬度范围是东经135度2分30秒-东经73度40分,北纬3度52分-北纬53度33分。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)
好了,一个中国地图就出来了!但是我们发现,好像少了点什么,没错就是省界。我们可以在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)
还可以在地图上加上经纬度,比如我们要画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])
大功告成!但是,emmm,我们发现好像有点歪?我们可以在创建地图时选择投影参数。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=137,urcrnrlat=54,
projection = 'lcc', lat_1 = 33, lat_2 = 45, lon_0 = 100)
这回正式的完成了!
附上所有代码:
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()
来源:https://www.jianshu.com/p/9d0100f455bb
0
投稿
猜你喜欢
- 本文实例为大家分享了php微信公众号开发之快递查询的具体代码,供大家参考,具体内容如下快递查询数组用法foreach查询接口是:爱快递:ht
- 具体代码如下所示:#!/usr/bin/python# coding=utf-8from ftplib import FTPimport t
- 我们都知道如果想让电脑运行更多的程序,就要增加它的配置才能带动。在之前的学习中,我们已经对函数的打印print有所了解,但是遇到更加复杂的对
- 通常测试人员或公司实习人员需要处理一些txt文本内容,而此时使用Python是比较方便的语言。它不光在爬取网上资料上方便,还在NLP自然语言
- 如下所示://用普通文本文件方式打开和操作with open("'file.csv'") as cf:
- 阅读上一篇文章《WEB2.0网页制作标准教程(5)head区的其他设置》在开始正式内容制作之前,我们必须先了解一下web标准有关代码的规范。
- 接上一篇终于知道python的装饰器是怎么回事,那在工作中,到底能干吗用呢?尤其对我这个只会写写脚本又不做python开发的小测试/手动无辜
- 在实现鼠标停在某元素上,会出现提示信息,以前我们太多是采用javascript脚本代码来实现。看了怿飞的IE中伪类:hover的使用及BUG
- 爬虫利器BeautifulSoup中find和find_all的使用方法二话不说,先上段HTML例子<html> &
- 问题的起源早些时候使用with实现了一版全局进程锁,希望实现以下效果:with CacheLock("test_lock"
- 本文主要研究的是flask如何截获所有访问,以及before_request、after_request修饰器的相关内容,具体如下。在学习着
- 目录matplotlib基础线形图散点图直方图子图图例配置三维图pandas绘图不论是数据挖掘还是数学建模,都免不了数据可视化的问题。对于
- 特点:不需要另外加个清除DIV:after(伪对象)--设置在对象后发生的内容,通常和content配合使用,IE不支持此伪对象,非Ie 浏
- 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字
- 本文实例讲述了php生成随机数/生成随机字符串的方法。分享给大家供大家参考,具体如下:有时候我们的项目需要生成随机数,但是又不想那么麻烦,那
- 1.简介(torch.nn下的)卷积层主要使用的有3类,用于处理不同维度的数据参数 Parameters:in_channels(int)
- 如下所示:logprobs.new_zeros(logprobs.size())pytorch 0.4版本中用到的新建一个与logprobs
- 本文实例讲述了Python实现爬虫抓取与读写、追加到excel文件操作。分享给大家供大家参考,具体如下:爬取糗事百科热门安装 读写excel
- 前言嗨,彦祖们,不会过圣诞了还是一个人吧?今天我们来讲一下如何用python来画一个圣诞树,学会就快给那个她发过去吧,我的朋友圈已经让圣诞树
- 虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境。