我想画一条线:(x^2)/11.39 +(y^2)/6.25 = 1,我正在做的一个项目绕x轴旋转。我以前用matplotlib画过一些3D平面,但我无法弄清楚如何画出一条线绕x轴的旋转。我想我必须使用ax.plot_surface,但不太确定如何使用。谢谢
gtlvzcf81#
以下是我使用plot_surface、meshgrid和三角函数的一些尝试:
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()
1条答案
按热度按时间gtlvzcf81#
以下是我使用
plot_surface
、meshgrid
和三角函数的一些尝试: