gpt4 book ai didi

python - Matplotlib 范围与 mollweide 投影

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:39 24 4
gpt4 key购买 nike

我在使用 matplotlib 并将数组投影到 Mollweide 投影时遇到了一些问题。我正在使用 Python 3.6 和 matplotlib 2.0.2

我有一个形状为 (360, 180) 的 np.array,但我不知道如何正确绘制它。

例如

fig = plt.figure()
ax = fig.add_subplot(111, projection='mollweide')
arr = np.zeros((360, 180))
extent=(-np.pi, np.pi, -np.pi/2., np.pi/2.)
im = ax.imshow(arr, cmap=plt.cm.jet,
extent=extent, aspect=0.5)

生成空白图像。将范围更改为度数:

fig = plt.figure()
ax = fig.add_subplot(111, projection='mollweide')
arr = np.zeros((360, 180))
extent=(-180, 180, -180/2., 180/2.)
im = ax.imshow(arr, cmap=plt.cm.jet,
extent=extent, aspect=0.5)

生成此图像 Matplotlib image .任何帮助将非常感激。

最佳答案

在非笛卡尔投影上使用 plt.imshow 显示图像大多会失败。然而,可以使用 pcolormesh。摩尔维德投影需要 -π,π-π/2., π/2 范围内的坐标。因此,您可以使用 numpy.meshgrid 创建相应的网格,并使用 pcolormesh 在其上绘制数组。 (请注意,y/纬度是该数组的第一个维度。)

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='mollweide')
arr = np.random.rand(180, 360)

lon = np.linspace(-np.pi, np.pi,360)
lat = np.linspace(-np.pi/2., np.pi/2.,180)
Lon,Lat = np.meshgrid(lon,lat)

im = ax.pcolormesh(Lon,Lat,arr, cmap=plt.cm.jet)

plt.show()

enter image description here

关于python - Matplotlib 范围与 mollweide 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46063033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com