Python matplot工具包之一的 mpl_toolkits绘制属于你的世界地图

Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能之一。

今天我们用matplot工具包之一的 mpl_toolkits 来绘制世界地图,这是一个简单的可视化工具,如果希望绘制更加复杂的地图,可以考虑使用Google Maps API,不过这不在我们今天的讨论范围之内。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上。

**(可选1) **如果你用Python的目的是数据分析,可以直接安装Anaconda,它内置了Python和pip.

**(可选2) **此外,推荐大家用VSCode编辑器,它有许多的优点。

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install numpy
pip install matplotlib

为了使用 mpl_toolkits, 单纯安装matplotlib是不够的,我们还需要单独安装basemap,如果你已经安装了Anaconda,那这一步就非常好办,输入以下命令安装即可:

conda install basemap

如果没有的话,就稍微麻烦一点:

1.安装geos: pip install geos

2.根据你的Python版本下载basemap
http://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap
注意cp后面的数字是Python的版本。(在页面上按ctrl+F,输入basemap快速定位)

3.在 cmd 下进入该文件的目录,运行

pip install basemap‑1.2.1‑cp37‑cp37m‑win_amd64.whl
2.简单的地图

让我们开始绘制一个地球,中心指向中国:

#绘制一个地球
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import  Basemap#初始化图形
plt.figure(figsize=(8,8))
#底图:圆形 ,lat_0:纬度:log_o:经度,(113,29)是武汉
m=Basemap(projection='ortho',resolution=None,lat_0=29,lon_0=113)#底色
m.bluemarble(scale=0.5)
#显示
plt.show()

效果还不错哦,不仅如此,它其实不单单只是一张图像,它还是一个功能齐全的matplot画布。这也就意味着,你能够在上面画线!让我们放大地图,进入中国区域,然后标记出深圳的位置:

不要用蓝底图了,看得不是很清晰,我们换成浮雕型:#导入需要的包
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import  Basemap#以下三行是为了让matplot能显示中文
from  pylab import  mpl
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=Falsefig=plt.figure(figsize=(8,8))#注意几个新增的参数,width和height是用来控制放大尺度的
#分别代表投影的宽带和高度(8E6 代表,8x10^6米
m=Basemap(projection='lcc',resolution=None,width=8E6,height=8E6,lat_0=23,lon_0=113,)
m.etopo(scale=0.5)#这里的经纬度:(经度,纬度)
x,y=m(113,23)
plt.plot(x,y,'ok',markersize=5)
plt.text(x,y,'深圳',fontsize=12,color="red")
plt.show()

可以很明显地看到山区、丘陵等地理样貌。你还可以根据你的需要,针对某几个城市做连线或者绘制某些经纬度之间的区域。别忘了,这可是matplotlib可编辑的画布。

3.世界地图

接下来,我们将上述的世界地图展开成带经纬线的平面图形。

#导入需要的包
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import  Basemap
from itertools import  chaindef draw_map(m,scale=0.2):#绘制带阴影的浮雕图像m.shadedrelief(scale=scale)#根据经纬度切割,每13度一条线lats=m.drawparallels(np.linspace(-90,90,13))lons=m.drawmeridians(np.linspace(-180,180,13))#集合所有线条lat_lines=chain(*(tup[1][0] for tup in lats.items()))lon_lines = chain(*(tup[1][0] for tup in lons.items()))all_lines = chain(lat_lines,lon_lines)#循环画线for line in all_lines:line.set(linestyle='-',alpha=0.3,color='w')
fig=plt.figure(figsize=(8,6),edgecolor='w')
m=Basemap(projection='cyl',resolution=None,llcrnrlat=-90,urcrnrlat=90,llcrnrlon=-180,urcrnrlon=180,)
draw_map(m)
plt.show()

设置地图上面的景点:

这样,只需要往locations里类似地加入某个地点的经纬度,就能在地图上展示出来了,你还能自定义地画两个地点之间的连线,或者是重点放大某个区域。总而言之,你想干的,基本上基于Matplotlib都可以做得到。

Python matplot工具包之一的 mpl_toolkits绘制属于你的世界地图相关推荐

  1. Python 炫技操作:Python 绘制属于你的世界地图

    Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能之一. 今天我们用matplot工具包之一的 mpl_toolkits 来绘制世界地图, ...

  2. 8个流行的Python可视化工具包。

    喜欢用 Python 做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?之前文章里出现过漂亮的图表时,也总有读者在后台留言问该图表时用什么工具做的.下面,作者介绍了八种在 ...

  3. python +gis 点数据转栅格数据 绘制矩阵图

    python +gis 点数据转栅格数据 绘制矩阵图 import numpy as np import pandas as pd import matplotlib.pyplot as plt im ...

  4. Python实现3D莫比乌斯环的绘制

    Python实现3D莫比乌斯环的绘制 在Python中,我们可以使用matplotlib库来实现3D图形的绘制,并且提供了很多方便的工具函数.本文将介绍如何使用Python绘制一个3D莫比乌斯环. 首 ...

  5. 使用Python,OpenCV进行涂鸦(绘制文字、线、圆、矩形、椭圆、多边形轮廓、多边形填充、箭头~)

    使用Python,OpenCV进行涂鸦(绘制文字.线.圆.矩形.椭圆.多边形轮廓.多边形填充.箭头) 1. 效果图 2. 原理 2.1 绘制线:cv2.line(canvas, (300, 0), ( ...

  6. Python自用工具包PyTls

    我们搞了个python的工具包PyTls. 做这件事的初衷是发生了一个星期要用python同时开发3个项目的情况,我发现了两个现象:1.有很多定制化的需求是极度高频反复重写的:2.有很多功能之前写过, ...

  7. 用python绘制柱状图标题-Python数据可视化:5种绘制柱状图表的方法(附源码)...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于数据Magic,作者我不是小样 前言 python里面有很多优秀的可 ...

  8. python绘制饼图-Python使用Plotly绘图工具,绘制饼图

    今天我们来学习一下如何使用Python的Plotly绘图工具,绘制饼图 使用Plotly绘制饼图的方法,我们需要使用graph_objs中的Pie函数 函数中最常用的两个属性values,用于赋值给需 ...

  9. python画直方图代码-Python使用Plotly绘图工具,绘制直方图

    今天我们再来讲解一下Python使用Plotly绘图工具如何绘制直方图 使用plotly绘制直方图需要用到graph_objs包中的Histogram函数 我们将数据赋值给函数中的x变量,x = da ...

  10. 2转单通道 python_机器学习用Python—Python集成工具包Anaconda安装步骤

    近几年来,机器学习以及深度学习的研究异常火热,机器学习和深度学习也逐渐渗透到各个领域,当然,脑科学领域也不例外.利用机器学习和深度学习技术解决脑科学领域中的问题,成为目前最为火热的研究方向之一.而神经 ...

最新文章

  1. conda不是内部或外部命令
  2. 密码危机:深度学习正在加速密码破解!
  3. Android log打印不出来
  4. mysql 虚表_mysql虚拟表
  5. 【学习笔记】springboot中的全局异常处理 和@ControllerAdvice的使用
  6. 深度学习 占用gpu内存 使用率为0_你了解GPU吗?为什么说深度学习需要GPU?
  7. 怎么把数据文件上传云服务器,怎么把数据上传导云服务器
  8. cassandra可视化工具_一位数据科学家的私房工具清单
  9. MySQL实验7存储过程_mySQL(7)-存储过程
  10. C语言输出任意大小矩阵,【c语言】输出以下4*5的矩阵
  11. Halcon数据类型
  12. Wilcoxon符号秩+秩和检验学习[转载]
  13. 三目表达式 java_Java 三目运算符表达式的一些问题
  14. linux 下多个图片合并,FFmpeg将多张图片合成视频
  15. 圆和长方形周长相等谁的面积大_长方形,正方形和圆的面积相等时,谁的周长最大...
  16. ζ(2)的夹逼代数证明
  17. 2021最新升级版E4A雪人影视APP源码 带直播功能与代理系统 打包所有E4A类库
  18. 一键体验 Istio
  19. STM32学习笔记1:STM32ZET6配置蓝牙模块
  20. 【论文阅读|深读】 GraphSAGE:Inductive Representation Learning on Large Graphs

热门文章

  1. 采用计算机发布调度命令时 必须严格遵守,调度命令规范格式(公文命令).doc...
  2. 【小工具】仿站小工具的使用及下载
  3. 用 Dev-C++ 编写简单的平均数/中位数/众数/方差/一元线性回归方程计算器(附带控制台颜色设置,选择界面)
  4. 完成端口(Completion Port)详解
  5. 【GlobalMapper精品教程】001:GlobalMapper23 Pro-x64中文安装教程(附软件包下载)
  6. 2009年河北省普通高校专接本考试专业课考试用参考教材目录
  7. 【无机纳米材料科研制图——OriginLab 0202】Origin制图优化与格式复制
  8. linux HUSTOJ 一些页面修改
  9. 普林斯顿微积分读本篇六:求解微分问题
  10. 4k电视测试软件准确吗,如何检测自家的电视是真4K还是假4K?当贝市场告诉你