我有三个长度相等的x,y和z数组。 x和y数组是网格的x轴和y轴。 z数组将确定网格块的颜色。例如,
x = [10, 10, 10, 20, 20, 20, 30, 30, 30]
y = [10, 20, 30, 10, 20, 30, 10, 20, 30]
z = [100, 54, 32, 67, 71, 88, 100, 15, 29]
很容易制作3D图形
ax.plot_trisurf(x, y, z, cmap=cm.RdYlGn)
或
ax.bar3d(x, y, [0] * len(x), 100, 100, z, cmap=cm.RdYlGn)
但我正在寻找类似的东西 this
答案 0 :(得分:1)
np.meshgrid
返回两个2D数组的元组,您可以直接解压缩
X,Y = np.meshgrid(x,y)
然而,你不需要那些表演情节。您需要的代码和代码中缺少的是z
值的二维数组。这将是提供给imshow
的数组。
img = plt.imshow(Z)
如果您想使用meshgrid,则可以使用X
和Y
值,
plt.pcolormesh(X,Y,Z)
查看示例数据,您可以使用imshow:
x = [10, 10, 10, 20, 20, 20, 30, 30, 30]
y = [10, 20, 30, 10, 20, 30, 10, 20, 30]
z = [100, 54, 32, 67, 71, 88, 100, 15, 29]
import matplotlib.pyplot as plt
import numpy as np
z = np.array(z).reshape(3,3)
plt.imshow(z,extent=[5,35,5,35])
plt.show()