使用Python实现绘制地图的示例详解

 更新时间:2024年01月24日 11:02:11   作者:微小冷  
这篇文章主要为大家详细介绍了如何使用Python实现绘制地图相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

海岸线

cartopy是英国气象局开发的一款用于地理空间数据处理的python库,支持创建并发布高质量地图,随着basemap的停止维护,cartopy已成Python中地理绘图的首选模块,其最简单的地图即为海岸线的线条图,示例如下

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
plt.show()

PlateCarree是可利投影,圆柱投影的原理是将地物投影到圆柱面上再展开,将这种投影作为一种坐标映射提供给坐标轴,便可得到一个cartopy定义的坐标轴对象GeoAxes

type(ax)
# <class 'cartopy.mpl.geoaxes.GeoAxes'>

GeoAxes显然继承自Axes,除了matplotlib中的函数之外,还封装了一些用于地图绘制的函数。

地形图

coastlines即海岸线,由此得到的地图是极致的线条风格,光秃秃得什么都没有,并不好看。通过stock_img函数,可以为地图添加低分辨率的地形图背景,示例如下,看上去十分不错,但需要注意,这个图目前就只有这一张。

ax = plt.axes(projection=ccrs.PlateCarree(180))
ax.stock_img()
plt.show()

重载绘图函数

matplotlib中提供了非常多的绘图函数,cartopy对下列诸图进行了重载,有关这些图形的示例,可参考:python35种绘图函数总结,3D、统计、流场,实用性拉满

绘图函数图形类别
scatter散点图
barbs风场图
quiver向量场图
streamplot流场图
contour等高线
contourf填充等高线
pcolor矩阵伪彩图
pcolormesh矩阵伪彩图
hexbin钻石图

和Axes中的绘图函数相比,这些重载后的方法普遍添加了transform参数,下面以风场图为例,进行绘制,此图来自于官网,但对其绘图代码进行了精简。

首先创建示例数据

import numpy as np
import cartopy.crs as ccrs
def sample_data(shape=(20, 30)):
    crs = ccrs.RotatedPole(pole_longitude=177.5, pole_latitude=37.5)
    x = np.linspace(311.9, 391.1, shape[1])
    y = np.linspace(-23.6, 24.8, shape[0])
    X, Y = np.deg2rad(np.meshgrid(x, y))
    u = 10 * (2 * np.cos(2 * X + 3 * (Y + 30)) ** 2)
    v = 20 * np.cos(6 * np.deg2rad(X))
    return x, y, u, v, crs

下面是绘图代码

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(10, 5))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
ax.set_extent([-90, 80, 10, 85], crs=ccrs.PlateCarree())
ax.stock_img()
ax.coastlines()

x, y, u, v, vector_crs = sample_data(shape=(10, 14))
ax.barbs(x, y, u, v, length=5,
    sizes=dict(emptybarb=0.25, spacing=0.2, height=0.5),
    lw=0.95, transform=vector_crs)
plt.show()

到此这篇关于使用Python实现绘制地图的示例详解的文章就介绍到这了,更多相关Python绘制地图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 实现关联规则算法Apriori的示例

    python 实现关联规则算法Apriori的示例

    这篇文章主要介绍了python 实现关联规则算法Apriori的示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • Python OS模块常用函数说明

    Python OS模块常用函数说明

    这篇文章主要介绍了Python OS模块常用函数说明,本文列出了一些在os模块中比较有用的部分函数,它们中的大多数都简单明了,需要的朋友可以参考下
    2015-05-05
  • python生成随机密码或随机字符串的方法

    python生成随机密码或随机字符串的方法

    这篇文章主要介绍了python生成随机密码或随机字符串的方法,涉及Python字符串及随机数的相关使用技巧,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • Python中Tkinter GUI编程详细教程

    Python中Tkinter GUI编程详细教程

    Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文章主要介绍了Python中Tkinter GUI编程的相关资料,需要的朋友可以参考下
    2025-12-12
  • 利用PyCharm Profile分析异步爬虫效率详解

    利用PyCharm Profile分析异步爬虫效率详解

    这篇文章主要给大家介绍了关于如何利用PyCharm Profile分析异步爬虫效率的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PyCharm具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • pandas Dataframe实现批量修改值的方法

    pandas Dataframe实现批量修改值的方法

    这篇文章主要介绍了pandas Dataframe实现批量修改值的方法,在使用dataframe的时候 有时候会碰到需要批量修改数据的时候,下面文章主要说明两种情况使用iloc对某几行某几列进行全部修该和对数据进行判定后,相互+/-/*某个数,使用内置函数,需要的朋友可以参考一下
    2022-06-06
  • Python实现查询剪贴板自动匹配信息的思路详解

    Python实现查询剪贴板自动匹配信息的思路详解

    这篇文章主要介绍了Python实现查询剪贴板自动匹配信息,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 使用Fastapi打包exe后无限启动导致死机的解决办法

    使用Fastapi打包exe后无限启动导致死机的解决办法

    将 fastapi 服务打包成 exe 后双击执行,命令行中不断创建服务导致cpu吃满,最后死机,所以本文给大家介绍了Fastapi打包exe后无限启动导致死机的解决办法,需要的朋友可以参考下
    2024-03-03
  • Python中matplotlib库安装失败的经验总结(附pycharm配置anaconda)

    Python中matplotlib库安装失败的经验总结(附pycharm配置anaconda)

    最近根据领导布置的学习任务,开始学习python中的matplotlib,朋友告诉我这个很简单,然而刚踏入安装的门槛,就遇到了安装不成功的问题,下面这篇文章主要给大家介绍了关于Python中matplotlib库安装失败的经验总结,需要的朋友可以参考下
    2022-08-08
  • python raise的基本使用

    python raise的基本使用

    这篇文章主要介绍了python raise的基本使用,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09

最新评论