gpt4 book ai didi

python - pcolormesh 为每个数据点/图 block 勾选中心

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:57 27 4
gpt4 key购买 nike

我想在热图中显示一些 z=f(x,y) 数据。所以我使用 np.meshgrid 创建一个 (x,y)-grid,然后调用 pcolormesh。然而,对应于数据点的每个“图 block ”的刻度并未居中——在文档中,我没有找到任何关于如何使每个图 block 的刻度居中以便我可以立即读出相应值的说明。有什么想法吗?

例如,在所附图片中,刻度对应的 x 值并不清楚。

Ticks

最佳答案

在 pcolormesh 中,网格由边值定义。在下面的示例中,左下角的值 6 是每个维度中介于 0 和 1 之间的值。我想这对每个人来说都是完全可以理解的。

enter image description here

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)

x = np.arange(5)
y = np.arange(3)
X,Y = np.meshgrid(x,y)
Z = np.random.randint(1,9, size=(2,4))

plt.pcolormesh(X,Y,Z)

plt.show()

现在如果你想(只)在单元格中间有刻度线,你可以按如下方式设置它们

plt.xticks(x[:-1]+0.5)
plt.yticks(y[:-1]+0.5)

enter image description here

如果左下角的像素实际上对应的不是0到1之间的数据,而是0的数据,则网格'错误';一种解决方案是通过将其平移像素宽度的一半来修复它。

plt.pcolormesh(X-0.5,Y-0.5,Z)

enter image description here

如上所述,可以使用 plt.xticks 调整刻度以仅显示特定数字。

关于python - pcolormesh 为每个数据点/图 block 勾选中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43128106/

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