gpt4 book ai didi

python - 如何从pyplot中的不规则xyz数据创建热图?

转载 作者:太空宇宙 更新时间:2023-11-04 05:09:45 25 4
gpt4 key购买 nike

我有一堆 xz 数据集,我想使用这些文件创建一个热图,其中 y 轴是在数据集之间变化的参数。问题是每个数据集中的 x 值都不同。此外,每个数据集中的 x 值之间的差异不是固定的(例如 x[100] - x[99] =/= x[200]-x[199] )。我知道我可以插入数据,生成网格,然后使用 imshow 显示数据,问题是是否有更直接的解决方案?

最佳答案

您可以使用 pcolormesh阴谋。这适用于常规(即排序的、直线的,但不一定等距)网格。

这是一个例子:

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

x = np.array([1,1.5,3,4,5,5.5])
y = np.array([-1,0,2,3.6,4])
X,Y = np.meshgrid(x,y)
Z = np.random.randint(1,11, size=(len(y), len(x)))

plt.pcolormesh(X,Y,Z)
plt.plot(X[1,2],Y[1,2] , marker="o", color="crimson")
plt.text(X[1,2],Y[1,2], str(Z[1,2]), color="crimson", fontsize=20)
plt.colorbar()
plt.show()

enter image description here

请注意,Z[i,j] 中的值绘制在单元格中,范围从 X[i,j],Y[i,j]X[i+1,j+1],Y[i+1,j+1]。所以网格点就是单元格的边缘。
这也意味着如果 X,Y,Z 具有相同的形状,则不会绘制 Z 的最后一行和最后一列。但是,您可以提供一个在两个维度上都比值数组 Z 大一个的网格。

为了研究不同参数的不同图,您可以使用我在这个答案中提出的技术:Paging/scrolling through set of 2D heat maps in matplotlib .

关于python - 如何从pyplot中的不规则xyz数据创建热图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43290853/

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