Как построить куб данных в Python - PullRequest
2 голосов
/ 29 июля 2011

Мне было интересно, есть ли способ построить куб данных в Python. Я имею в виду, у меня есть три координаты для каждой точки

x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]

И для каждой точки у меня есть скалярное поле t (x, y, z)

Я хотел бы построить трехмерный куб данных, показывающий положение точки и для каждой точки цвет, который пропорционален скалярному полю t в этой точке.

Я пробовал с гистограммой, но это не сработало.

Ответы [ 2 ]

10 голосов
/ 29 июля 2011

Вы можете использовать matplotlib . Здесь у вас есть рабочий пример (который движется!):

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

mypoints = []
for _ in range(100):
    mypoints.append([random.random(),    #x
                    random.random(),     #y
                    random.random(),     #z
                    random.randint(10,100)]) #scalar

data = zip(*mypoints)           # use list(zip(*mypoints)) with py3k  

fig = pyplot.figure()
ax = fig.add_subplot(111, projection='3d')

ax.scatter(data[0], data[1], data[2], c=data[3])
pyplot.show()

enter image description here

Возможно, вам придется настроить отношение ваших скалярных значений с соответствующими цветами.
Matplotlib очень хорошо выглядит, но это может быть медленное рисование и перемещение этих трехмерных рисунков, когда у вас много точек. В этих случаях я использовал Gnuplot , управляемый gnuplot.py . Gnuplot может также использоваться непосредственно как подпроцесс, как показано здесь и здесь .

0 голосов
/ 04 сентября 2011

Другим вариантом является Точка сюжет, созданный MathGL .Это графическая библиотека GPL.Добавить его не нужно много памяти, если вы сохраните в растровом формате (PNG, JPEG, GIF и т. Д.).

...