python - 使用 matplotlib 移动网格

标签 python matplotlib matplotlib-basemap

我正在绘制格式介于 0 到 360 度之间的数据。我正在尝试在 cyl 或 merc 投影上绘制它,但它只显示从 0 开始的数据(我想在中心绘制 GMT 的数据,所以需要在 -180 到 180 的 lon 网格上的数据) .如果我移动网格 (lon = lon -180),则会显示所有数据,但数据位于错误的位置 -180 度。

问题:

enter image description here

虽然在正射投影中工作正常。相关代码如下。

lat = np.linspace(90,-90,721)
lon = np.linspace(0,360,1440) 
m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90,llcrnrlon=0,urcrnrlon=360,resolution='c',)
X, Y = np.meshgrid(lon, lat)
X, Y = m(X, Y)
cs = m.contourf(X,Y,Plot,scale, cmap=cmap)

最佳答案

请尝试:

import numpy as np
from mpl_toolkits.basemap import shiftgrid
from mpl_toolkits.basemap import Basemap

lat = np.linspace(-90, 90, 721)
lon = np.linspace(0, 360, 1440)
Plot, lon = shiftgrid(180., Plot, lon, start=False)  # shiftgrid
m = Basemap(projection='cyl', llcrnrlat=-90, urcrnrlat=90, llcrnrlon=-180, urcrnrlon=180, resolution='c',)
X, Y = np.meshgrid(lon, lat)
X, Y = m(X, Y)
cs = m.contourf(X, Y, Plot, scale, cmap=cmap)

shiftgrid:向东或向西移动全局纬度/经度网格。

关于python - 使用 matplotlib 移动网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38550017/

相关文章:

python - PyQt5 keyPressEvent 的工作原理

matplotlib - pcolormesh 的输入格式

python - 散点图不会在 basemap 上绘制任何点

python - 深度学习: Validation Loss Fluctuates Wildly Yet Training Loss is Stable

python - 通过Mqtt将数据发布到RabbitMQ服务器

python - Pharo 中的高性能 Python 集合

python - 在 Windows 上导入 mpl_toolkits.basemap?

python - 如何在 matplotlib 中获得一个开放和缩放的箭头

python - Matplotlib:如何在绘图上方设置刻度标签

python - 用 Python 绘制方波