插值后向 matplotlib 图添加特征叠加时出现问题

2024-03-15

我必须承认,我仍然无法理解绘图及其各部分与 matplotlib 的正确设置和关系,仍然令人困惑的是 Fig 与 plt 与 ax 是如何相互关联的,所以我只是进行了反复试验,文档有时更多让我感到困惑。 :-(

我正在从 json 绘制天气值并获得积分。我可以用下面的代码绘制,如下图所示

fig=plt.figure(figsize=(10,8))
ax=fig.add_subplot(1,1,1,projection=mapcrs)
ax.set_extent([-93,-86,13,19],datacrs)
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.scatter(lon,lat,c=dat,transform=datacrs)

and I am able to plot the map enter image description here

然后我使用 metpy 和这段代码生成插值

gridx, gridy, gridz = interpolate_to_grid(lon, lat, dat, interp_type='rbf', hres=.1, rbf_func='linear', rbf_smooth=0)

fig=plt.figure(figsize=(15,15))
ax=fig.add_subplot(1,1,1,projection=mapcrs)
#ax = fig.add_axes([0, 0, 1, 1], projection=mapcrs)
#ax.set_extent([-93,-86,13,19])
#ax.add_feature(cfeature.COASTLINE)
#ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.contourf(gridx,gridy,gridz,levels=np.arange(10,60,2),cmap='viridis')
plt.plot(lon,lat,'k.',color='white')

我得到了所需的点插值,但无法显示特征,该怎么做?如果我取消注释 ax.extent,我看到的只是一个空的白色图形。如果我取消注释 ax.features,插值将显示为下图,但不是地图。

感谢您的帮助和指导。


你错过了transform中的关键字参数contourf函数以给出插值数据的坐标系。这是一个使用随机数据的最小工作示例,获得的输出如下:

import numpy as np

from cartopy import crs, feature
from matplotlib import pyplot as plt
from scipy.interpolate import griddata

# figure
fig = plt.figure(figsize=(5, 5))

# coordinate systems
crs_map = crs.Mercator()
crs_data = crs.PlateCarree()

# random data
np.random.seed(42)  # for repro.
n = 100
lon = -89 + 2 * np.random.randn(n)
lat = 16 + 2 * np.random.randn(n)
dat = np.random.rand(n)

# interpolated data
ilon = np.linspace(-93, -86, 200)
ilat = np.linspace(13, 19, 200)
ilon, ilat = np.meshgrid(ilon, ilat)
idat = griddata((lon, lat), dat, (ilon, ilat), method="linear")

# show up
ax = fig.add_subplot(1, 1, 1, projection=crs_map)
ax.set_extent([-93, -86, 13, 19], crs_data)
ax.add_feature(feature.COASTLINE)
ax.add_feature(feature.BORDERS, ls=":", lw=0.5)
ax.scatter(lon, lat, c=dat, transform=crs_data)  # this is invisible with contour
ax.plot(lon, lat, "k.", transform=crs_data)  # in order to see the points
ax.contourf(ilon, ilat, idat, levels=np.linspace(0, 1, 10), transform=crs_data)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插值后向 matplotlib 图添加特征叠加时出现问题 的相关文章

随机推荐

  • 如何使用 PhpStorm 和 Xdebug 调试 AJAX (POST)?

    我已将 PhpStorm 配置为调试 HTTP GET 但仅当我直接加载页面时 当我想要调试 AJAX 时 我获取 JS 请求的 URL 并创建一个 PhpStorm 配置来调试它 不是特别优雅 是吗 当然 我不能对 POST 请求这样做
  • 什么是投影?

    从数据库理论和 NHibernate 的角度来看 使用 SetProjection 时什么是投影 投影是关系代数的基本运算之一 它采用一个关系和该关系的属性列表 可能为空 作为输入 它输出仅包含指定属性列表的关系删除重复的元组 换句话说 输
  • 多个事实的聚合解决方案

    尝试创建一个谓词 timePeriod 2 计算特定事实的两个日期之间的时间段 我已经设法自己做到这一点 但当 其他答案 存在于同一列表中时会遇到问题 即更容易用示例解释 我有以下知识基础事实 popStar Jackson 1987 19
  • 以 HTML 代码作为输入的 Angular 组件

    我正在创建一个角度组件 它显示突出显示的 HTML 代码及其执行结果 显示的 HTML 代码位于 pre html 元素内 至于结果的预览 它是硬编码的 pre class prettyprint lang html lt button t
  • 带 Join 的 TSQL Update 语句

    我有两个具有父 子关系的表 我想用孩子的数据更新父母 但是 假设有 2 个孩子 我希望能够根据孩子的其他列来选择哪个孩子用于更新 这是我到目前为止所拥有的 父级 test 孩子 exdat 预期结果 更新后父级的结果应仅包含大写字母 我想用
  • 如何在一页中执行多个查询?

    我编写了这段代码 但是当我运行它时没有输出 没有错误但是问题没有输出 如何在同一页面中执行多个查询
  • ConstraintLayout 问题 - ImageView 16:9 上边距不合适

    我想使用 ConstraintLayout 构建以下布局 我使用这个源进行布局
  • Python记录器不尊重setLevel?

    我花了一些时间浏览网站上的 Python 记录器问题 希望我的问题能在那里得到解决 我已经设置了一个带有两个流处理程序的记录器 它们具有不同的格式和日志记录级别 这是我的代码库中的功能片段 import os import time imp
  • 如何从选定的文本中获取相邻字符?

    我有一个像这样的字符串 var comment this is a test Assume this i已选择 现在我需要null 左侧 和s 右边 我怎样才能得到它们 我可以像这样获取选定的文本 function getSelection
  • Shapeless 不适用于一般环境

    我仍在尝试了解 Shapeless 以及较小程度上的 Scala 并且我一直在编写一些简单的代码来为案例类生成随机实例数据 主要基于此处的指南 http enear github io 2016 09 27 bits of shapeles
  • 在没有窗口引用的选项卡 dom 之间进行通信[重复]

    这个问题在这里已经有答案了 我使用以下命令打开包含一些页面内容的新选项卡 在新进程中 var p document getElementById myElement var a document createElement a a setA
  • 如何使用 knit/Sweave 中 R 变量的值在 LaTeX 中编写 if-then 语句

    我目前正在使用 knitr 以及 R 3 0 2 和 RStudio 来生成 LaTeX 报告 我的报告被输入为 Rnw 文件 并使用 knit2pdf 函数进行编译 我想用一个LaTeX 中的 if then 公式 http en wik
  • 视图模型的单独项目以“实施”MVVM:如何打开对话框?

    在遵守 MVVM 模式的同时打开对话框似乎是常见问题之一 此处和其他地方 我知道有像 MVVM light 这样的框架可以解决这个问题 但我目前正在开发一个非常小的个人项目 出于学习目的 我尝试自己完成大部分工作 为了 强迫 自己注意引用
  • 如何在 Swift 3 中使用 Facebook API 访问个人资料图片?

    早些时候我尝试像这样访问 let gr2 FBSDKGraphRequest FBSDKGraphRequest graphPath me parameters fields id picture width 198 height 198
  • 围绕文本创建表格

    我有一个单词列表 每个单词都独占一行 这是表格的第一列 我想手动创建第二列 我现在想使用一些插件 它将在文本周围创建一个 ASCII 表 因此我有很好的格式 每列中的起始字母应该在一个 垂直线 中 或者我应该能够快速移动到通过一个快捷方式正
  • 期望 ssh 脚本返回无效命令名

    我正在尝试编写一个 Expect 脚本 该脚本将 ssh 进入服务器 发送 sudo su 然后检查 iptables 状态并将输出放入服务器上的日志文件中 下面是脚本 1 usr bin expect 2 exp internal 1 3
  • 在 Spring Data MongoDB 中为 ZonedDateTime 注册一个新的可审计日期转换器

    我想要我的可审计 CreatedDate and LastModifiedDate 要使用的 MongoDB 文档ZonedDateTime fields 显然 Spring Data 不支持这种类型 看看org springframewo
  • 最Pythonic的方式进行输入验证[重复]

    这个问题在这里已经有答案了 在 Python 中进行用户输入验证的最 正确 的 Pythonic 方法是什么 我一直在使用以下内容 while True stuff input Please enter foo try some test
  • 当且仅当使用 JavaScript 中的变量时,如何计算该变量?

    这就是我现在正在做的事情 var foo function var x someComplicatedComputationThatMayTakeMoreTime this foo function return x return x 它有
  • 插值后向 matplotlib 图添加特征叠加时出现问题

    我必须承认 我仍然无法理解绘图及其各部分与 matplotlib 的正确设置和关系 仍然令人困惑的是 Fig 与 plt 与 ax 是如何相互关联的 所以我只是进行了反复试验 文档有时更多让我感到困惑 我正在从 json 绘制天气值并获得积