【发布时间】:2018-06-01 11:13:31
【问题描述】:
我正在尝试在笛卡尔坐标中绘制一个球体。 但是,我得到一个半球体,好像 np.sqrt 只给了我正值。 我怎样才能完成球体? np.sqrt 的任何替代方案?
我知道如何在极坐标或正弦和余弦函数中绘制球体,所以我只对使用 x、y、z 值绘制它感兴趣,例如;
x**2+y**2+z**2=1
这是给出半球体和警告的代码;
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(20, 10))
ax = fig.add_subplot(1,2,1, projection = '3d')
xs=np.linspace(-1,1, 100)
ys=np.linspace(-1,1, 100)
xs,ys=np.meshgrid(xs,ys)
zs= np.sqrt(1-xs*xs-ys*ys)
ax.plot_surface(xs, ys, zs, lw = 0, antialiased = True)
【问题讨论】: