在Python中给出三个不规则的值列表时,如何使用matplotlib/numpy绘制热图

在Python中给出三个不规则的值列表时,如何使用matplotlib/numpy绘制热图,python,numpy,matplotlib,Python,Numpy,Matplotlib,我想知道是否有一种方法可以使用matplotlib和numpy来绘制三个列表的热图。我的网格不是规则的,它的形状很奇怪,所以这不适合我:。当我尝试这样做时,我得到了ValueError:无法将大小为1906的数组重塑为形状(1847127)。我的列表有多个相同的X和Y值,并且不是矩形的。我想知道是否有一种方法可以绘制我的数据,使它看起来像网格/imshow网格,当你有矩形数据时,你可以得到它。基本上,我只想在给定的X,Y值下绘制一组给定的强度,并将它们显示为热图 谢谢 编辑:以下是我正在处理的数

我想知道是否有一种方法可以使用matplotlib和numpy来绘制三个列表的热图。我的网格不是规则的,它的形状很奇怪,所以这不适合我:。当我尝试这样做时,我得到了
ValueError:无法将大小为1906的数组重塑为形状(1847127)
。我的列表有多个相同的X和Y值,并且不是矩形的。我想知道是否有一种方法可以绘制我的数据,使它看起来像网格/imshow网格,当你有矩形数据时,你可以得到它。基本上,我只想在给定的X,Y值下绘制一组给定的强度,并将它们显示为热图

谢谢

编辑:以下是我正在处理的数据类型。我试着用第4列作为强度,第1列和第2列分别作为x和y。

谢谢ymmx,我是堆栈溢出新手,所以我不知道如何将您的答案转换为实际答案。以下是我如何使用2D iTerporation使其工作的:

myData = np.genfromtxt(fileName, delimiter=",")
X = myData[:, 0]
Y = myData[:, 1]
intensity = myData[:, 3]
XY = np.column_stack((Y,X))
grid_x, grid_y = np.mgrid[-.2:.2:100j, 0:.05:200j]
grid1 = griddata(XY, intensity, (grid_x, grid_y), method='cubic')
plt.imshow(grid1.T, extent=(0, .5, 0, .05), origin='lower',cmap='jet')
如果有人有同样的问题,您必须调整mgrid和区段值以适合您的数据


谢谢你的帮助

你能分享一些“样本”+预期结果吗?此外,如果X和Y值相同,Z应如何组合?您可以尝试对数据进行2D插值。查看:添加了示例数据。仍然不清楚预期结果是什么。我已经使用了我的接近票,但也可能有人将其标记为重复的,例如或。也可能是重复的