Matplotlib:如何在3D图中绘制垂直平面

7
我想在Matplotlib中绘制由以下公式定义的垂直平面: 5 = x + y 我查看了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()

提前感谢您的帮助。

1个回答

9

你的错误在于将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()

示例输出:

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接