Matplotlib 3D ошибка графика рассеяния: AttributeError: объект «AxesSubplot» не имеет атрибута «set_zlim» [дубликат]

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

49
задан Tshepang 19 October 2013 в 16:56
поделиться

4 ответа

Для этого вы можете использовать matplotlib . matplotlib имеет модуль mplot3d , который будет делать именно то, что вы хотите.

from matplotlib import pyplot
from mpl_toolkits.mplot3d import Axes3D
import random


fig = pyplot.figure()
ax = Axes3D(fig)

sequence_containing_x_vals = list(range(0, 100))
sequence_containing_y_vals = list(range(0, 100))
sequence_containing_z_vals = list(range(0, 100))

random.shuffle(sequence_containing_x_vals)
random.shuffle(sequence_containing_y_vals)
random.shuffle(sequence_containing_z_vals)

ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals)
pyplot.show()

В приведенном выше коде создается цифра, подобная:

matplotlib 3D image [/g2]

78
ответ дан Rufflewind 18 August 2018 в 04:12
поделиться
  • 1
    Хорошее решение. Обратите внимание, что plt.zlabel('zlabel') не работает. Чтобы пометить ось z, вам необходимо использовать: ax.set_zlabel('Z'). – Yonatan Simson 12 May 2016 в 04:18

Вместо этого используйте асимптоту!

Вот как это выглядит:

http://asymptote.sourceforge.net/gallery/3D%20graphs/helix. pdf

Это код: http://asymptote.sourceforge.net/gallery/3D%20graphs/helix.asy

Асимптота также может читаться в файлах данных.

И полная галерея: http://asymptote.sourceforge.net/gallery/

Использовать асимптоту из в Python:

http://www.tex.ac.uk/tex-archive/graphics/asymptote/base/asymptote.py

2
ответ дан Hamish Grubijan 18 August 2018 в 04:12
поделиться
-3
ответ дан jfs 18 August 2018 в 04:12
поделиться

Используйте следующий код для меня:

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

   # Generate the values
   x_vals = X_iso[:, 0:1]
   y_vals = X_iso[:, 1:2]
   z_vals = X_iso[:, 2:3]

   # Plot the values
   ax.scatter(x_vals, y_vals, z_vals, c = 'b', marker='o')
   ax.set_xlabel('X-axis')
   ax.set_ylabel('Y-axis')
   ax.set_zlabel('Z-axis')

   plt.show()

, а X_iso - мой трехмерный массив и для X_vals, Y_vals, Z_vals Я скопировал / использовал 1 столбец / ось из этого массива и назначил к этим переменным / массивам соответственно.

1
ответ дан Saeed Ullah 18 August 2018 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: