use*_*164 5 python matplotlib python-xarray
我正在尝试使用 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
Run Code Online (Sandbox Code Playgroud)
结果是

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

使用参数size、aspect、 或figsize也没有帮助。对于上面的例子:
data.plot(size=6, aspect=150 / 30. * 6)
Run Code Online (Sandbox Code Playgroud)
(或具有相同的结果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')
Run Code Online (Sandbox Code Playgroud)
第二行确保轴具有正确的纵横比(就像您第一次尝试一样)。如果您没有另外指定图形尺寸,则将从默认参数确定图形尺寸。问题是默认的图形大小与您的实际数据纵横比不太适合。因此,轴必须非常小才能适合默认宽度。
您可以通过提供与数据纵横比大致匹配的图形大小(在您的情况下为 7.5)来解决此问题。对我来说,如果您选择的图形长宽比比数据长宽比稍大一点,以便为颜色条提供一些空间,看起来效果最好。
| 归档时间: |
|
| 查看次数: |
2295 次 |
| 最近记录: |