【问题标题】:Matplotlib: how to draw a vertical plane in 3D figureMatplotlib:如何在 3D 图中绘制垂直平面
【发布时间】:2018-11-02 08:47:40
【问题描述】:

我想画一个由

定义的垂直平面

5 = x + y

在 3D 图中,使用 Matplotlib。

我查看了thisthis,但没有机会。我还在this link 找到了mpl_toolkits.mplot3d.art3d.line_2d_to_3d,上面写着

将 2D 线转换为 3D

看起来很有希望,但我不知道如何使用它。

现在,您将如何修改以下代码以实现我的目标?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

xs = np.linspace(0, 10, 100)
ys = np.linspace(0, 10, 100)

X, Y = np.meshgrid(xs, ys)
Z # ?????????

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()

提前感谢您的帮助。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您的错误是您将xsys 定义为自变量,而它们是相关的(x + y = 5)。 zs 在这里独立:

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    xs = np.linspace(0, 10, 100)
    zs = np.linspace(0, 10, 100)
    
    X, Z = np.meshgrid(xs, zs)
    Y = 5 - X
    
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    ax.plot_surface(X, Y, Z)
    plt.show()
    

    样本输出:

    【讨论】: