用Python制作中国地图、地球平面图及球形图
绘制地图在python中主要用到的 basemap 库,这个库是 matplotlib 库中一个用于在 Python 中绘制地图上的 2D 数据的工具包。
首先安装库:
1、安装 geos 库:Python 的 basemap 库是建立在 geos 中的,所以得先安装 geos,cmd 命令下,定位到 pip 所在的文件夹,使用 pip 命令安装。
pip install geos
2.安装 pyproj、basemap 库:下载 pyproj 和 basemap 两个包的 whl 文件,使用 pip 命令安装 pyproj 和 basemap 库。
whl 文件下载地址如下:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
找出与python版本对应的whl 文件下载,然后再cmd中进入到whl 文件的目录下进行pip安装
pip install pyproj-1.9.6-cp35-cp35m-win_amd64.whl
pip install basemap-1.2.0-cp35-cp35m-win_amd64.whl
导入库:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
创建黑白色世界平面图:
map = Basemap()#新建一张世界地图
map.drawcoastlines()#画出海岸线
plt.show()#打开窗口显示运行结果

创建世界球形图并给大地和湖泊加上颜色:
plt.figure(figsize=(10,7))#定义图的大小
m = Basemap(projection='ortho',lat_0=0,lon_0=0)#创建世界地图并增加投影
m.drawmapboundary(fill_color='aqua')#给地球涂上蓝色
m.fillcontinents(color='coral',lake_color='aqua')#给大地和海洋涂上颜色
m.drawcoastlines()#画海岸线
plt.show()

创建中国地图:
下载 中国 China 和 台湾 Taiwan 的 Shapefile 文件,注意还需要在Country的下拉框中选择台湾
网址如下:https://gadm.org/download_country_v3.htm

下载文件解压后用 readshapefile 方法读取下载的文件。
plt.figure(figsize=(16, 7)) # 定义图的大小
m = Basemap(llcrnrlon=77, llcrnrlat=14, urcrnrlon=140, urcrnrlat=51, projection='lcc',
lat_1=33, lat_2=45, lon_0=100) # 创建中国地图
m.drawcountries(linewidth=1.5) # 画出中国地图 m.readshapefile(r'C:\PyProject\learn\小技巧\地图\China\gadm36_CHN_1', 'states', drawbounds=True)
m.readshapefile(r'C:\PyProject\learn\小技巧\地图\TaiWan\gadm36_TWN_1', 'taiwan', drawbounds=True) m.drawmapboundary(fill_color='aqua') # 给地球涂上蓝色
m.fillcontinents(color='coral', lake_color='aqua') # 给大陆和海洋分别涂上颜色
m.drawcoastlines() # 画海岸线 # 给中国加上鲜艳颜色
ax = plt.gca()
for nshape, seg in enumerate(m.states):
poly = Polygon(seg, facecolor='r')
ax.add_patch(poly) # 台湾不要忘了
m.readshapefile('C:\PyProject\learn\小技巧\地图\TaiWan\gadm36_TWN_1', 'taiwan', drawbounds=True)
for nshape, seg in enumerate(m.taiwan):
poly = Polygon(seg, facecolor='r')
ax.add_patch(poly) plt.show()

用Python制作中国地图、地球平面图及球形图的更多相关文章
- 如何使用highmaps制作中国地图
如何使用highmaps制作中国地图 文章目录 Highmaps 所需文件 地图初始化代码 highmaps 渲染讲解 highmaps 中国各城市坐标的json文件 highmaps 线上DEMO ...
- D3.js 制作中国地图 .net 公共基础类
D3.js 制作中国地图 from: http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding ...
- 使用echarts简单制作中国地图,echarts中国地图
网站需要一张中国地图,并且鼠标经过某个省份,该省份的省份名字显示,而且该省份的地区会变色显示. 第一种方法: 将每个省份的图片定位(先隐藏),拼合成一张中国地图,然后再定位省份名称,鼠标经过省份名字, ...
- 用echarts.js制作中国地图,点击对应的省市链接到指定页面
这里使用的是ECharts 2,因为用EChart 3制作的地图上的省市文字标识会有重叠,推测是引入的地图文件china.js,绘制文字的坐标方面的问题,所以,这里还是使用老版本. ECharts 2 ...
- echarts.制作中国地图,点击对应的省市链接到该省份的详细介绍
今天花了一天的时间,用echart弄了一个效果,是从中国地图点进去身份并把改省份的数据渲染出来的效果,刚开始完全没有头绪,只能硬着头皮去看百度echart的api,和博客,看了半天,好家伙,终于给我找 ...
- D3.js 制作中国地图
from: http://d3.decembercafe.org/pages/map/index.html GeoJSON is a format for encoding a variety of ...
- 使用highmaps制作中国地图
Highmaps 所需文件 http://code.highcharts.com/maps/highmaps.js(地图渲染的核心文件 必须引用)http://code.highcharts.com/ ...
- echarts.js制作中国地图
一.准备 1. 打开sublime,新建一个echarts文件夹,新建echarts.html文件 2. 在echarts.html文件中,为ECharts准备一个Dom(id是china-map ...
- Python - 利用词云wordcloud,jieba和中国地图制作四大名著的热词图
热词图很酷炫,也非常适合热点事件,抓住重点,以图文结合的方式表现出来,很有冲击力.下面这段代码是制作热词图的,用到了以下技术: jieba,把文本分词 wordcloud,制作热图 chardet,辨 ...
随机推荐
- Node版本管理工具-NVM的安装与使用(windows系统)
友情提示:为避免踩坑,建议浏览全文后动手操作!!! 一.nvm是什么 看到这篇文章的猿/媛们肯定不会问这个问题了,但是我还是要说,哈哈哈! 无论工作还是干嘛,就不会一直做项目,所以肯定也不会一直用一个 ...
- chrome中安装.crx后缀的离线插件
在前端开发中常常需要在chrome中安装一些插件辅助开发,比如最常用的Postman.React Developer Tools.Vue.js devtools等等...今天分享一下不需要“FQ”的插 ...
- JDBCTM中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...
- django ----视图和路由
django的view(视图) 一个视图函数,简称视图,是一个简单python函数,他接受web请求并且返回一个响应 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者 ...
- Java for-each循环解惑
Java for-each循环解惑 2014/04/24 | 分类: 技术之外 | 0 条评论 | 标签: JAVA 分享到:21 本文由 ImportNew - liqing 翻译自 javarev ...
- Linux 6.8 源码安装MySQL8.0
搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...
- mac下 改变了ssh连接的端口 git怎么修改
1. 情况是这样的,为了安全起见,我们的服务器ssh连接端口改为了33 sudo vi /etc/ssh/ssh_config port 33 2. 因为git是基于ssh发送数据的,并且git服务 ...
- EXCEL中,如何引用一个单元格中的数据,作为另一个单元格内容中的一部分?
https://zhidao.baidu.com/question/230715654.html 假设单元格A1值是8(该值由函数计算得出),我要在单元格B1中引用A1的值,但只是作为B1单元格内容中 ...
- VS 2017 + opencv4.0
完全参考这一文章, 非常详细: https://blog.csdn.net/qq_41175905/article/details/80560429 记录自己遇到的问题: 1. VS 2017 专业版 ...
- gtest 三种事件机制
前言: 1.首先说明gtest中事件的结构层次: 测试程序:一个测试程序只有一个main函数,也可以说是一个可执行程序是一个测试程序.该级别的事件机制会在程序的开始和结束执行. 测试套件:代表一个测试 ...