如何为热图pcolormesh整理数据?
我发现的所有例子都在用随机数据。我的问题是如何把我的实际数据整理成符合解决方案的格式。
我想创建一个热图/散点图,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的文档似乎没有详细说明"C"是什么,只是说它可以是一个“掩码数组”。可惜我也不知道那是什么(还没搞明白)。
我该如何把我的三个数组转换成它需要的格式呢?我试着把它们放进一个numpy数组里,这样就消除了关于没有“形状”的错误,但三维数组似乎不是它想要的。
1 个回答
5
pcolormesh
这个函数需要三个二维数组。
你的 X
和 Y
没问题,但需要通过 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
的形状调整成和 xx
以及 yy
一样,就可以了。
对于散点图来说,X
、Y
和 Z
都可以直接使用:
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()