首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

这份Cartopy绘图入门指南,请查收

cartopy 集成到 matplotlib 主要类是 GeoAxes,它是普通 matplotlib Axes 子类。...GeoAxes 类为特定于绘制地图轴添加了额外功能。创建一个 GeoAxes 对象办法是,在创建 axes(或 subplot)时,通过参数 projection 指定一个 ccrs 中投影。...但需要注意是,即便正确绘制了国界、省界,所地图如果要在境内公开展示,依然需要审。个人没有提交审申请资格,需要付费,委托给有资质企事业单位代为提交审申请。...在之前学习中我们知道,cartopy绘制地图称为,在绘制中国地图时候,有时候由于地图大小限制,我们无法展示部分地区如南海,常规方法是绘制两幅地图,比如一张为全国地图,一张为局部地图,也就是常说南海小地图...常见subplot和subplot2grid函数一般来说绘制地图大小是一样,不容易展示比例大小,所以我们选择add_axes()命令来绘制两个大小不一样

4.3K10

Python可视化 | 三维地图可视化实例

这就是我理解开发者想法。下面就是如何shp文件中geometry转化成polygon问题了。cartopy有没有这个功能呢,打开官网文档,可以查到这么一条: ?...使用时,只需要修改shp文件路径,读取本地文件。限制绘图范围即可。这个办法读取地图已经是polygon格式而不是geomtery格式了。...facecolor='yellow', closed=False) ax.add_collection3d(lc) proj_ax.spines['geo'].set_visible(False)#解除掉用于确定地图...而且,我们还可以引入cartopy经纬度格式化器来格式化3d地图中经纬度。...利用在前面提到zdir和offset命令,我们就可以修改三维等值线图变为二维等值线图,zdir通俗理解就是传入维度降维,offset表示降维后等值线填色放置层次: ax.contourf

3.8K21
您找到你想要的搜索结果了吗?
是的
没有找到

Python空间绘图绘图——Cartopy 进阶

Cartopy进阶——自由接口 一、复习回顾 在前面一节中,我们已经介绍了cartopy大致用法——全球地图绘制、范围设定以及更改地理信息精度。...还有进行地区级别的研究,比如青藏高原地理区划包含尼泊尔与不丹,cartopy基础地理信息添加暂时无法做到,但是该库包已经准备了额外接口以满足这种需求,并且比NCL更加灵活。...shp_path=r'E:\enshi\恩施.shp'#确定shp文件地址 接着,按照前面教绘图流程应该添加画布,增加,准备绘制。...plt.figure(figsize=(4, 4), dpi=400) # 创建画布 ax = fig.subplots(1, 1, subplot_kw={'projection': proj}) # 创建...这算是我在两个月之前刚学习时想出办法,如果读者有更方便办法,可在后台留言交流。

3.2K20

这样地图绘制起来真的不难!优质学习资源推荐...

绘制南北极地图时,cartopy默认刻度文本样式太丑了,我想要绕着环形布局刻度文本样式 在绘制科研地图时,需要局部放大,这个怎么绘制? 如何在地图上绘制渐变颜色直方图图例?...下面针对每个问题给出解答: 多子共用colorbar 这种图形类型在科研绘图中,特别是地理图表中,经常用到,绘制难点是无法确保一个colorbar能够准确替代所有的数值映射。...地理多子绘制案例,我们也在课程中进行了更新,绘制结果如下: 多子共用colorbar 此外,我们还绘制了在一张地图上添加两个colorbar示例: 多colorbar样式 南北极刻度标签自定义 Cartopy...默认南北极刻度标签有些不美观,我们提供了多种方法完成了刻度标签环形设置,使绘图结果更加美观和符合出版需求,如下: 刻度标签环形设置 局部放大地图 多子地图另外一个常用案例是地图中几个局部区域进行单独绘制...我们也给出了具体绘制案例,方便大家快速学习,绘制结果如下: 多局部绘制 (PS:这副地图涉及知识点非常多,大家要好好学) 地图渐变颜色直方图图例绘制 使用直方图作为地图图例案例,在一些论文期刊中经常见到

14210

Python可视化 | 三维图形迁移

---- ---- 在前面推送中我们提到了通过collection功能而在3D地图中添加地图方法,也短暂提到了栅格与填色两种图形样式降维方法。...但是从matplotlib这两个函数底层有一定局限性,比如下面这两张侧面填色就无法绘出: ? ? 前一张只能画最上面的等值线填色和地图,下面这张栅格也是无法绘制出来,只能画地图。...一、Axes平面pcolormesh迁移 import matplotlib.pyplot as plt import cartopy.crs as ccrs import cartopy.io.shapereader...解除掉用于生成平面pcolormesh显示后: ?...但是这个办法有个问题,如果有封闭polygon则会添加不出来,还没有找到适合方法来解决这个问题,如果有大神希望能指导一二: ? 六、仿制一张 ?

1.7K32

Python气象绘图教程(十三)—Cartopy_4

本节提要:关于一些问题、使用path添加示意框线、Cartopy台风实例本土化 一、关于一些问题 在某些时候,我们需要展示某个地区在整个地图中位置,常规方法是绘制两幅地图,比如一张为全国地图...常见subplot和subplot2grid函数一般来说绘制地图大小是一样,不容易展示比例大小,所以我们选择add_axes()命令来绘制两个大小不一样。...唯有一点希望读者注意,在此时ax1与ax2已经不是一类了,因为ax2在使用了projection命令之后,已经转变为cartopyGeoAxes。...二、使用path添加框线 在某些时候,需要在一幅地图中框选出比较重要区域,很多同学使用plt.plot()命令绘制,是比较简便。...在程序中,有两个命令比较关键,一个是buffer。在第二张图中,设置了在黑线相交地市填充为红色,在一个经纬度影响范围内填为橙色,在两个经纬度范围内填成绿色。

8.9K82

Python空间绘图--Cartopy简介

三、初识Cartopy 由于地球是球体,而我们使用地图是平面的,球型展开为平面进行绘制时有距离、面积失真。所以地图学家们提出了各种各样投影方式,来尽量减小某方面的失真。...四、实际操作 千读不如一练,Python气象绘图显然也是如此,下面通过简要一幅小,我们来直观感受cartopy运作。...根据前面的介绍,我们使用central_longitude=130,将我国移动至地图中心: proj = ccrs.PlateCarree(central_longitude=130)## fig =...那么坑爹地方来了,我们在经纬度范围里设定是-180~180,-90~90,那么,180和90是不在被取之列。解决办法即在取值时添加一小段,确保两端取入。...通过魔改matpltlib出来地图比气象学家上推送文章更加精美,南北90度也同时标记出来了。

2.9K33

气象绘图——3D图形迁移

---- ---- 在前面推送中我们提到了通过collection功能而在3D地图中添加地图方法,也短暂提到了栅格与填色两种图形样式降维方法。...但是从matplotlib这两个函数底层有一定局限性,比如下面这两张侧面填色就无法绘出: 前一张只能画最上面的等值线填色和地图,下面这张栅格也是无法绘制出来,只能画地图。...所以通过相同collection办法,我们来实现图形迁移。...一、Axes平面pcolormesh迁移 import matplotlib.pyplot as plt import cartopy.crs as ccrs import cartopy.io.shapereader...原本生成: 解除掉用于生成平面pcolormesh显示后: 三、多层contourf叠加 import itertools import pandas as pd from

37221

【ProPlot库】初识ProPlot(一)

它对Basemap、cartopy、xarray、pandas等气象常用绘图库进行导入和封装,使组绘制变得简单,对于气象人来说十分便捷。...地球科学科研工作常需要添加地图背景,python一般使用matplotlib和cartopy地图,画一个简单地图可以使用如下代码,绘制结果如图。...通过使用format函数可以属性传递到所有的图中,从而进行统一调节。其他细节设定可见如下网址。.../_modules/proplot/axes/geo.html https://proplot.readthedocs.io/en/latest/configuration.html 这里给出一个画组简单示例...以下步骤虽然看着略微复杂,但是在实际画图中,如果要画整个地图,便可以直接复制下面的代码绘制底图,之后图层可以慢慢叠加。

2.4K40

Cartopy 系列教程:安装并绘制地图

在之前例子中,我们使用 coastlines 方法添加海岸线到地图中。 下面使用另一种投影创建地图,然后使用 stock_img 方法添加背景图片到地图中。...因为 cartopy 使用 GeoAxes 类,这相当于询问地图坐标轴范围。有时候会得到预期效果,但有时候并不会。...有以下几种方式可以设置 cartopy GeoAxes 范围: 使用 set_global 方法可以绘制全球 任何坐标系中都可以使用 set_extent 方法根据边界框来设置地图范围 也可以使用...既然上一篇介绍了 Basemap 白化方法,趁热打铁此篇介绍一下使用 Cartopy 进行白化方法。 白化 Cartopy 同样也能像 Basemap 那样对地图进行白化,而且效果也是很好。...as shpreader from cartopy.examples.waves import sample_data # subplot_kw 是一个用于设置属性关键词参数:设置投影 fig

10.3K10

使用 Basemap 和 Cartopy 绘制实例

平时绘制地图时,经常会将多个放到同一个 figure 中,而这些地图范围通常是相同,所以可以设置共享 x-y 轴。 #!...最后说一下:一定会有人好奇,为什么不使用 subplots sharex 和 sharey 参数来控制 x-y 轴共享。下面就上一张使用这种方法看看什么效果 ?...注意: 以上图中 colorbar 和 panel 对齐程度并不是很好,需要出后再进行调整,或是直接设置 figsize 为合适大小(但很难控制),即使传递 aspect 参数给 subplots...而 cartopy 可以很好解决以上遇到问题。 下面上一张 cartopy 绘制效果 #!...这就是我比较喜欢使用 Cartopy ---- 注:https://stackoverflow.com/questions/13784201/matplotlib-2-subplots-1-colorbar

2.8K41

聊一聊我常用6种绘制地图方法

今天来讲一讲在日常工作生活中我常用几种绘制地图方法,下面我介绍下面这些可视化库地图绘制方法,当然绘制漂亮可视化地图还有很多优秀类库,没有办法一一列举 pyecharts、plotly、folium...、bokeh、basemap、geopandas、cartopy Boken 首先我们先介绍 Boken 绘制地图方法 Bokeh 支持创建基本地图可视化和基于处理地理数据地图可视化 画一张世界地图...,不过渲染速度有些感人,这个就看个人需求了,如果你对渲染速度有要求,那么 Ployly 可能不是最好选择~ Cartopy/Basemap 之所以把这两个库放到一起,是因为他们都是基于 Matplotlib...绘制非常经典且常见世界地图,形式比较简单,下面我们增强该地图 import datetime import matplotlib.pyplot as plt import cartopy.crs...Leaflet.js 库映射能力之上高级地图绘制工具,通过 Python 操作数据,然后在 Leaflet 地图中可视化,可以灵活自定义绘制区域,并且展现形式更加多样化 首先是三行代码绘制世界地图

3.5K20

气象绘图——白化杂谈

其他四种都是先判别是不是在指定shp文件内部,然后再画,但是geopandas.clip办法与Masterpiece办法会改变数据维度,导致无法还原为2D数组,不能用在contourf绘制等值线图上...集合,所以可以用set_clip_path来裁剪等值线图: 首先展示在普通图中对等值线进行裁剪,首先需要生成一个边界path,我们将其命名为boundary,然后对集合中每一个collection...在上一期提到三维地图添加时我们就提到了各种绘图集合图形之间是可以相互转化,我们还是得使用那个geos_to_path命令,shp里集合形状geometry转化成path,然后用set_clip_path...: 上述只是通过普通白化推广到地图白化,所以默认PlateCarree投影。...这种方法过程都是如下: 通过地图库包获取当前shp文件信息→geometry转化为path→绘制等值线→使用得到path对等值线collection进行裁剪。

92032

用python在地球投影中轻松添加图形标注

当无地图投影时 在 python matplotlib.pyplot 和 matplotlib.patches中,有很多内置函数可以帮助我们绘制矩形、圆形、椭圆等图案。...code import matplotlib.pyplot as plt import matplotlib.patches as patches # 创建一个图形对象和 fig, ax = plt.subplots...circle = patches.Circle((2.5, 2.5), radius=1, linewidth=2, edgecolor='black', facecolor='none') # 圆形添加到图中...当存在地图投影时 前面提到过,matplotlib.patches.xxxx 方法可以接收 transform 地图投影参数,但在实际使用时发现该参数在极地投影情况下,不能实现想要效果,建议使用gridlines...as plt from cartopy import crs as ccrs # 创建绘图窗口和地图投影 fig = plt.figure(figsize=(10, 10)) ax = fig.add_subplot

52120

Python气象绘图教程(十六)—Cartopy_6

本节提要:使用cartopy进行市县色块填色、模仿geopandas绘制颜色 一、利用cartopy进行市县色块填色 其实geopandas在这方面比cartopy更加专业,由于是基于pandas...,所以在和表格类数据连接上效果更好,不过cartopy也还能完成任务,虽然我想出是个笨办法。...比如在这段程序中,for··· in ···逐个循环,在city循环同时,color也同时循环,这样就可以实现绘制地图同时给地图填色。 ?...如果需要绘制新,只需要修改excel中数据即可: ? ?...二、使用cartopy绘制等级颜色 前面的步骤和一中一致: shppath=r'E:\shp\行政边界.shp' filepath=r'C:\Users\lenovo\Desktop\恩施分县.xlsx

3.5K23

如何使用手游角色给科研赋能——藿藿篇

想象一下,如果我们能够科研视为一场令人兴奋冒险旅程,让每个研究者都成为其中主角,那将是多么有趣而又富有创造力一种方式!...手游角色扮演元素引入科研领域,可以激发科学家们热情、提高研究乐趣,并促进创新和合作。让我们一起踏上这场奇妙科研冒险之旅,成为科学界高级玩家吧!...对角色立像素读取与排列 import matplotlib.pyplot as plt from PIL import Image import numpy as np # 输入角色图片 img...as cfeature import cartopy.crs as ccrs import cartopy.mpl.ticker as cticker from cartopy.util import...[0, 2, :, :] lons = data.longitude lats = data.latitude fig = plt.figure(figsize=(11, 8.5)) # 设置地图投影为

8410

Python气象绘图教程(十五)—Cartopy_5

本节提要:仿制中央气象台气象服务图片、关于cartopy投影与转换、cartopy中extent与boundary。...期间还经历了比较大型改版(我感觉改版后变丑了O(∩_∩)O哈哈~),我觉得央台气象服务图片做得比较好,基本上以填色和散点图为主,辅以少量雷达,绝大多数图片都能很好向各层次读者展现天气预报与实况...B、降水量仿制 使用是最开始实验自定义colorbar时那张数据,但是当时用是色条来表示降水量,这次我们用图例方式表示降水量,前面的步骤和A中类似。...如何提供更丰富标记,只能烦请各位在官网文档上查找了。 二、Cartopy投影与转换 我在两个月前经常碰到这个问题,有两个关于投影—crs、transform。...extent进行裁剪,那么将会在地图中出现范围之外地图: ?

10.2K52

(在模仿中精进数据可视化07)星球研究所大坝分布可视化

其余辅助视觉元素    除了上面介绍两部分视觉主体之外,其余部分都主要是些文字或符号之类小部件,模仿起来比较简单(上方地图国家名称标注部分用代码自动化方式反而更费事,因此本文模仿过程略去这部分...3   我们利用mpl_toolkits.axes_grid1.inset_locator中inset_axes()两个半球各自对应axe对象插入到主体axe中,再利用cartopyadd_geometries...4   这样我们就完成了两个半球部分制作,顺便配合matplotlib中text()、参数fontproperties以及matplotlib.font_manager来基于思源宋体添加标题: ?...5 2.3 象形柱状部分制作   介绍完半球地图部分,我们接着来制作象形柱状部分,这部分核心内容是使用matplotlib.offsetbox下OffsetImage()、AnnotationBbox...7   而图中其他小元素譬如各种文字就不赘述了,无非是text()复制粘贴改改参数而已,对完整过程感兴趣朋友可以在文章开头Github仓库中找到对应数据和代码~ ----   以上就是本文全部内容

59520

在模仿中精进数据可视化07:星球研究所大坝分布可视化

2.2 半球部分制作 「正射投影」部分,我选择使用cartopy.ccrs内置Orthographic(),通过传入中央经纬度,即可得到期望半球面: 3 我们利用mpl_toolkits.axes_grid1....inset_locator中inset_axes()两个半球各自对应axe对象插入到主体axe中,再利用cartopyadd_geometries进行矢量元素叠加和色彩映射即可,我已经在数据中算好了归一化数值方便色彩映射...这样我们就完成了两个半球部分制作,顺便配合matplotlib中text()、参数fontproperties以及matplotlib.font_manager来基于思源宋体添加标题: 5 2.3...象形柱状部分制作 介绍完「半球」地图部分,我们接着来制作「象形柱状」部分,这部分核心内容是使用matplotlib.offsetbox下OffsetImage()、AnnotationBbox...,即可在前面的基础上,得到下面的图像: 6 而右下角图例中第一个logo上下渐变效果其实是配合numpy数组,从上往下线性地降低rgba第四个通道透明度值得到了,非常容易~ 7 而图中其他小元素譬如各种文字就不赘述了

67510

想知道世界大坝分布情况吗?这篇可视化作品告诉你

「其余辅助视觉元素」 除了上面介绍两部分视觉主体之外,其余部分都主要是些文字或符号之类小部件,模仿起来比较简单(上方地图国家名称标注部分用代码自动化方式反而更费事,因此本文模仿过程略去这部分)...3 我们利用mpl_toolkits.axes_grid1.inset_locator中inset_axes()两个半球各自对应axe对象插入到主体axe中,再利用cartopyadd_geometries...4 这样我们就完成了两个半球部分制作,顺便配合matplotlib中text()、参数fontproperties以及matplotlib.font_manager来基于思源宋体添加标题: ?...5 2.3 象形柱状部分制作 介绍完「半球」地图部分,我们接着来制作「象形柱状」部分,这部分核心内容是使用matplotlib.offsetbox下OffsetImage()、AnnotationBbox...7 而图中其他小元素譬如各种文字就不赘述了,无非是text()复制粘贴改改参数而已,对完整过程感兴趣朋友可以在文章开头Github仓库中找到对应数据和代码~ ----

62240
领券