类型错误:Axes3D

2024-04-30 02:46:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Axes3D绘图仪出了问题,每次我在里面放东西的时候,我都会得到TypeError: unbound method scatter() must be called with Axes3D instance as first argument (got list instance instead)

我不太明白它想要我什么样的类型,因为我只想把一个点的x,y,z坐标放进去。(它们可以是列表或整数,都会给出错误。)

Axes3D.scatter( Xc[l], Yc[l], Zc[l], c=(i/nbodies,i/nbodies,i/nbodies))

我真的不知道这里有什么问题


Tags: instanceaswithbeargumentmethodfirst绘图仪
2条回答

David的答案实际上对我不起作用,但我通常使用的方式是这样的:您可以创建一个axis对象,正如David所提到的,通过创建一个新的子块:

fig = figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(1,2,3)

scatter()是必须对对象调用的方法。这样做时,传递给方法的第一个参数始终是对象本身。这就是为什么在类Axes3D上调用它时,缺少对象,因此缺少正确的第一个参数。

更新:好的,我在大卫的回答中没有看到更新,所以现在当然是一样的;)

必须先实例化轴:

ax = Axes3D(plt.gcf())
ax.scatter( Xc[l], Yc[l], Zc[l], c=(i/nbodies,i/nbodies,i/nbodies))

或者,您可以使用

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter( Xc[l], Yc[l], Zc[l], c=(i/nbodies,i/nbodies,i/nbodies))

相关问题 更多 >