Подтвердить что ты не робот

Как сделать 3D-график рассеяния в Python?

В настоящее время у меня есть матрица матриц nx3. Я хочу построить три столбца как три оси. Как я могу это сделать?

У меня есть googled, и люди предложили использовать Matlab, но мне действительно трудно понять это. Мне также нужен график рассеяния.

Может ли кто-нибудь научить меня?

4b9b3361

Ответ 1

Вы можете использовать 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

Ответ 2

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

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

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

Ответ 3

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

# 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 - это мой 3-D массив, а для X_vals, Y_vals, Z_vals Я скопировал/использовал 1 столбец/ось из этого массива и присвоен этим переменным/массивам соответственно.