Matplotlib 分离 3D 数据的 2D 轮廓投影图

Matplotlib separate 2D contour projection plots of 3D data

我正在尝试创建 3D 数据投影的 2D 图。非常简单,基于 this example 是否有办法生成显示的三个轮廓投影(在 X、Y 和 Z 方向)作为单独的二维图?我可以使用 pyplot 'contour' 命令轻松创建 Z 方向的等高线投影,但只有“3d”投影 'contour' 命令似乎能够采用 'zdir' 参数,并且它不能创建二维图。

3D 等高线中的 zdir 参数基本上表示将使用哪个轴来确定 3D 图中的等高线水平。在二维图中,这通常由参数的顺序指定,因此我们通常认为的 "Z",即确定等高线水平的值,作为第三个参数输入。在下面的示例中,请特别注意每个 contourf 调用中的前三个参数:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm

X, Y, Z = axes3d.get_test_data(0.05)

plt.subplot(131)
cset = plt.contourf(X, Y, Z, cmap=cm.coolwarm)
plt.subplot(132)
cset = plt.contourf(Y, Z, X, cmap=cm.coolwarm)
plt.subplot(133)
cset = plt.contourf(X, Z, Y, cmap=cm.coolwarm)

plt.show()

与 3D 图中的投影相比:

请注意,我在这里提到了 "the third argument",但实际上有很多方法可以解释 contourf 的参数,因此请参阅文档以获取更多详细信息,尽管这种方法通常只有效调用其中 X、Y 和 Z 是显式的。