可以使用以下代码绘制函数y = x**2
绕y轴的旋转固体:
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as axes3d
from matplotlib import cm
np.seterr(divide='ignore', invalid='ignore')
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ll, ul = 0, 1
u = np.linspace(ll, ul, 60)
v = np.linspace(0, 2*np.pi, 60)
U, V = np.meshgrid(u, v)
Z = U
X = np.sqrt(Z)*np.cos(V)
Y = np.sqrt(Z)*np.sin(V)
ax.set_xlabel('Y axis')
ax.set_ylabel('X axis')
ax.set_zlabel('Z axis')
ax.plot_surface(X, Y, Z, cmap=plt.cm.YlGnBu_r)
plt.show()
此代码仅绘制函数x = sqrt(y)
的旋转实心,而实心y = x**2
的反函数。但是如何画出一个函数的革命性:
y = x**5 + x**4 + x**3 + x**2 + x
?
可以使用以下代码绘制绕y轴旋转的函数y = x ** 2的立体图:将numpy导入为np导入matplotlib.pyplot作为plt导入mpl_toolkits.mplot3d.axes3d作为axis3d ...] >
(U,V)
参数空间到(X,Y,Z)
坐标的映射可能非常灵活。通常将U
选择为类似于np.linspace(ll, ul, 100)
的值,并使其等于Y
(如果y
是旋转轴)。但是您不必那样使用U
。相反,U
可以代表半径:
ll, ul = 0, 1
u = np.linspace(ll, ul, 100)
v = np.linspace(0, 2*np.pi, 60)
U, V = np.meshgrid(u, v)