如何安排热图pcolormesh的数据?

时间:2013-02-07 00:55:21

标签: python numpy matplotlib

我一直在使用的所有示例都使用随机数据。我的问题是安排我的实际数据以适应解决方案。

我正在尝试创建x,y,z的热图/散点图:x和y是位置,而z是颜色。 它们是三个相等长度的阵列。

X = [-0.11, -0.06, -0.07, -0.12, ...]
Y = [0.09, 0.13, 0.17, 0.09, ...]
Z = [0.38, 0.37, 0.44, 0.33, ...]

pcolormesh documentation似乎没有描述“C”是什么,而不是说它可以是“蒙面数组”。可悲的是,我不知道那是什么(还)。

如何将我的三个数组转换为它正在寻找的任何数组?我尝试将它们粘贴到一个numpy数组并传递它,这使得没有“形状”的错误平静下来,但三维数组似乎并不是它正在寻找的。

1 个答案:

答案 0 :(得分:5)

pcolormesh需要三个2-D阵列。

您的XY没问题,但需要通过numpy的meshgrid函数运行,即:

import numpy as np
X = [-0.11, -0.06, -0.07, -0.12, ...]
Y = [0.09, 0.13, 0.17, 0.09, ...]
xx, yy = np.meshgrid(X, Y)

然后您只需让Z处于与xxyy相同的形状中,您就可以全部设定。

对于散点图,XYZ都可以:

import matplotlib.pyplot as plt
X = [-0.11, -0.06, -0.07, -0.12, ...]
Y = [0.09, 0.13, 0.17, 0.09, ...]
Z = [0.38, 0.37, 0.44, 0.33, ...]
fig, ax = plt.subplots()
ax.scatter(X, Y, c=Z)
plt.show()