【发布时间】:2017-04-27 14:48:57
【问题描述】:
我有三个长度相等的数组 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 = [99, 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 grid的东西
另一个问题是我的 z 数组的生成方式不是按索引排序的。所以我的 x、y 和 z 数组可能看起来像这样。
x = [30, 10, 20, 20, 30, 10, 10, 30, 20]
y = [10, 20, 30, 10, 30, 30, 10, 20, 20]
z = [100, 54, 88, 67, 29, 32, 99, 15, 71]
【问题讨论】:
-
你首先必须对整个网格进行插值(例如检查 scipy 的
griddata),一旦你使用了 matplotlib 中的imshow或heatmap。 SO中有很多例子可以实现这一点。
标签: python arrays matplotlib multidimensional-array plot