Python Matplotlib参数化曲面打印意外结果,为什么?

Python Matplotlib参数化曲面打印意外结果,为什么?,python,matplotlib,3d,surface,parametric-equations,Python,Matplotlib,3d,Surface,Parametric Equations,我正在尝试绘制一个椭球体,因此,我想修改matplotlib 3D绘图页面中球体的示例代码 from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt from matplotlib import cm import numpy as np fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # Ellipsoid u = np.lins

我正在尝试绘制一个椭球体,因此,我想修改matplotlib 3D绘图页面中球体的示例代码

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Ellipsoid
u = np.linspace(-np.pi/2.0,np.pi/2.0,100)
v = np.linspace(-np.pi,np.pi,100)
x = 10 * np.outer(np.cos(u), np.cos(v))
y = 10 * np.outer(np.cos(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.sin(v))


# Sphere
#u = np.linspace(0, 2 * np.pi, 100)
#v = np.linspace(0, np.pi, 100)
#x = 10 * np.outer(np.cos(u), np.sin(v))
#y = 10 * np.outer(np.sin(u), np.sin(v))
#z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

ax.plot_surface(x, y, z,  rstride=4, cstride=4, cmap = cm.copper)
ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_zlabel('z-axis')
plt.show()
如果您运行代码,您将看到绘图返回的是一个美观的由内而外的船形表面,但遗憾的是不是一个椭球

已包含球体代码(注释掉)以进行比较


这里有什么明显的地方我遗漏了吗?

为什么要更改参数化?以球体为例,只需更改半轴长度:

# Ellipsoid
u = np.linspace(0, 2.*np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 60 * np.outer(np.cos(u), np.sin(v))
y = 20 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

当然可以!我对这个问题考虑得太多了。谢谢你,我需要外部视图,很高兴我能帮上忙。请随意接受这个答案和/或投票表决。这将向其他用户表明您的问题已得到解决。我没有足够的代表点数进行投票,但已接受答案,再次感谢。