我试图在matplotlib中绘制一个4x4数组作为3D图,但我遇到了plot_surface函数的问题。生成的图形仅显示具有3x3颜色栅格的曲面,而不是4x4颜色栅格。我怀疑plot_surface可能不是可视化完整矩阵的合适方法。我想实现类似于“3D imshow”的可视化,但我不确定这是否可以在matplotlib中实现。
我在下面提供了一个最小的可重复示例:
import numpy as np
import matplotlib.pyplot as plt
x, y = np.meshgrid(range(0, 4), range(0, 4))
z = -0.5 * x + 0.5 * y
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cstride=1, rstride=1, shade=False, cmap='plasma')
ax.plot_wireframe(x, y, z)
ax.set_aspect('equal', adjustable='box')
plt.show()
字符串
的数据
有没有办法修改这段代码,将完整的4x4矩阵绘制成3D图?或者,matplotlib中是否有一种替代方法,可以让我可视化曲面图中的所有值?我将非常感谢任何见解或建议。谢谢你,谢谢
1条答案
按热度按时间ryhaxcpt1#
此答案将创建3D条形图作为表示数据的替代方法。这将允许您可视化曲面,其中每个列表示单个z值。还可以通过旋转图以显示“底部”来查看阵列的展平的热图。
NOTE:
我使用了一个不同的、更大的样本集来创建示例。这只是为了表明该方法适用于更复杂的输入。输出示例
的数据
这是一个更大样本集的条形图。您可以清楚地看到所表示的数据,即使数据的“表面”并不平坦。
的
这是该图的自底向上视图。它表示输入数据的热图。
代码
字符串
这样有用吗
文档
3D Bar Charts from Matplotlib
Another example using the sample data from Matplotlib的