Я получаю сообщение об ошибке: «AttributeError: 'numpy .ndarray' объект не имеет атрибута has_data '» всякий раз, когда я пытаюсь построить трехмерное изображение с использованием Axes3D из пакета mpl_toolkits.mplot3d.
I импортировал все пакеты:
import numpy as np
import astropy.units as u
from astropy.constants import G
import matplotlib
from mpl_toolkits import mplot3d
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib.colots import LogNorm
Код построения (обратите внимание, xH_m31, yH_M31 и zH_M31 - это данные о положении в координатах x, y, z, которые я извлек ранее в своем коде)
fig=plt.figure()
ax=fig.gca(projection='3d')
Axes3D.plot(xH_M31,yH_M31,zH_M31, 50, cmap='magma')
#ax.set_xlabel('x')
#ax.set_ylabel('y')
#ax.set_xlabel('z')
#ax.view_init(60,35) # changes the view to 60 degrees above the xy plane and rotated 35 degrees counter clockwise acout z axis
plt.show()
Полученная ошибка:
AttributeError Traceback (most recent call last)
<ipython-input-26-06686389074d> in <module>
12 ax=fig.gca(projection='3d')
13
---> 14 Axes3D.plot(xH_M31,yH_M31,zH_M31, 50, cmap='magma')
15 #ax.set_xlabel('x')
16 #ax.set_ylabel('y')
~/anaconda3/lib/python3.7/site-packages/mpl_toolkits/mplot3d/axes3d.py in plot(self, xs, ys, zdir, *args, **kwargs)
1406 Other arguments are forwarded to `matplotlib.axes.Axes.plot`.
1407 """
-> 1408 had_data = self.has_data()
1409
1410 # `zs` can be passed positionally or as keyword; checking whether
AttributeError: 'numpy.ndarray' object has no attribute 'has_data'