Matplotlib:如何在3D图形中绘制垂直平面
问题内容:
我想画一个由
5 = x + y
在3D图形中,使用Matplotlib。
我看了一眼这个和这个,但没有机会。我还发现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()
感谢您的帮助。
问题答案:
您的错误是您将定义为独立变量,xs
并将ys
它们定义为独立变量(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()
样本输出: