gpt4 book ai didi

python - 使用 xarray (pcolormesh) 绘制 2D 数据,同时保持纵横比

转载 作者:行者123 更新时间:2023-12-05 03:54:33 26 4
gpt4 key购买 nike

我正在尝试使用 xarray(使用 matplotlib.pcolormesh)绘制二维数据集,同时保持数据的自然纵横比。

例子:

import xarray as xr
import matplotlib.pyplot as plt

plt.close('all')
data = xr.DataArray(np.random.randn(2, 3), dims=('x', 'y'),coords={'x': [10, 20],'y' : [0,50,100]})
data.plot() # Will produce a square plot

结果是

添加一个 plt.gca().set_aspect('equal') 确实按照我想要的方式缩放绘图,但是,颜色条的高度没有变化

使用参数 sizeaspectfigsize 也无济于事。对于上面的例子:

data.plot(size=6, aspect=150 / 30. * 6)

(或结果相同 data.plot(figsize=(150/30. * 6,6)))

哪个更好但仍然关闭(可能是由于颜色条?)。

最佳答案

size/aspectfigsize 参数都会影响图形的大小,而不是轴的大小。轴的纵横比在某种程度上受到这些参数的影响,但很难准确控制。例如,正如您所指出的,颜色条也会占用一些空间,因此留给轴的宽度会更小。

我会推荐以下内容:

ax = data.plot(figsize=(18, 2))
# Alternatively
# ax = data.plot(size=2, aspect=9)
ax.axes.set_aspect('equal')

第二行确保轴具有正确的纵横比(就像您第一次尝试时一样)。如果您不另外指定图形大小,它将由默认参数确定。问题是默认的图形大小与您的实际数据纵横比不太吻合。因此,轴必须非常小才能适应默认宽度。

您可以通过提供大致匹配您的数据纵横比(在您的情况下为 7.5)的图形大小来解决此问题。对我来说,如果你选择比数据纵横比大一点的图形纵横比来给颜色条一些空间,那看起来最好。

关于python - 使用 xarray (pcolormesh) 绘制 2D 数据,同时保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60854641/

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