在使用axes3D绘制椭球体时,我遇到了一个错误
TypeError:调用unbound method plot()时必须使用Axes3D实例作为第一个参数(改为获取ndarray实例)
我需要在椭球体里画出随机数目的点。所以我用随机模。但我无法确定出现这种错误的原因。程序如下所示。在
import random
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import *
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 1000000
a = input("Enter the value of semi major axis: \n")
b = input("Enter the value of semi minor axis: \n")
c = input("Enter the value of c \n")
x = random.uniform(-a, a, n)
y = random.uniform(-b, b, n)
z = random.uniform(-c, c, n)
r = (x ** 2 / a ** 2) + (y ** 2 / b ** 2) + (z ** 2 / c ** 2)
rd = r[:] <= 1
xd = x[rd]
yd = y[rd]
zd = z[rd]
Axes3D.plot3D(xd, yd, zd, "*")
plot.show()
可能有一些错误。我是初学者,请帮帮我。在
您的}与您使用的签名不同。在
import random
无法工作,甚至在您试图绘制点云之前就会出现问题,因为{我想您使用的真正语句是
from numpy import random
。。。在此外,导入3d功能的标准方法是
from mpl_toolkits.mplot3d import Axes3D
-这会修改axis对象的定义,这就是您所需要的全部。在最后,当您真正需要的是
.scatter()
时,您可以使用.plot()
方法,它不会绘制连接各个点的线。在我对您要实现的目标的理解如下(注意,我使用的是修改后的
ax
对象,而不是Axes3D
…)相关问题 更多 >
编程相关推荐