如何在 Python 中使用 matplotlib 绘制曲线沿 x 轴的旋转?
How to plot the rotation of a curve along the x-axis with matplotlib in Python?
我想绘制这条线:
(x^2)/11.39 + (y^2)/6.25 = 1
围绕我正在处理的项目的 x 轴旋转。
我之前使用 matplotlib 绘制了一些 3D 平面图,但我无法弄清楚如何绘制一条绕 x 轴旋转的线。
我想我必须使用 ax.plot_surface 但不太确定如何。
谢谢。
以下是我使用 plot_surface
、meshgrid
和三角函数的微薄尝试:
import numpy as np
import matplotlib.pyplot as plt
a2, b2 = 11.39, 6.26
X = np.linspace(-np.sqrt(a2), np.sqrt(a2), 100)
Theta = np.linspace(0, 2.1*np.pi, 1000)
X, Theta = np.meshgrid(X, Theta)
Y0 = np.sqrt(b2 * (1 - X**2 / a2))
Y = Y0 * np.cos(Theta)
Z = Y0 * np.sin(Theta)
fig,ax = plt.subplots(subplot_kw={'projection':'3d'})
ax.set_box_aspect((np.ptp(X), np.ptp(Y), np.ptp(Z)))
ax.plot_surface(X, Y, Z)
ax.set_xlabel('x')
plt.show()
我想绘制这条线: (x^2)/11.39 + (y^2)/6.25 = 1 围绕我正在处理的项目的 x 轴旋转。
我之前使用 matplotlib 绘制了一些 3D 平面图,但我无法弄清楚如何绘制一条绕 x 轴旋转的线。
我想我必须使用 ax.plot_surface 但不太确定如何。
谢谢。
以下是我使用 plot_surface
、meshgrid
和三角函数的微薄尝试:
import numpy as np
import matplotlib.pyplot as plt
a2, b2 = 11.39, 6.26
X = np.linspace(-np.sqrt(a2), np.sqrt(a2), 100)
Theta = np.linspace(0, 2.1*np.pi, 1000)
X, Theta = np.meshgrid(X, Theta)
Y0 = np.sqrt(b2 * (1 - X**2 / a2))
Y = Y0 * np.cos(Theta)
Z = Y0 * np.sin(Theta)
fig,ax = plt.subplots(subplot_kw={'projection':'3d'})
ax.set_box_aspect((np.ptp(X), np.ptp(Y), np.ptp(Z)))
ax.plot_surface(X, Y, Z)
ax.set_xlabel('x')
plt.show()