如何在python中绘制数据立方体

时间:2011-07-29 09:06:37

标签: python plot cube

我想知道是否有办法在Python中绘制数据立方体。我的意思是每个点都有三个坐标

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

对于每个点我都有一个标量场t(x,y,z)

我想绘制一个3D数据立方体,显示该点的位置,并为每个点绘制一个颜色,该颜色与该点的标量场t成正比。

我尝试使用histogramdd,但它没有用。

2 个答案:

答案 0 :(得分:10)

您可以使用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有一个非常漂亮的外观,但是当你有很多点时它可能会慢速绘制和移动这些3D绘图。在这些情况下,我曾使用由Gnuplot控制的gnuplot.py。 Gnuplot也可以直接用作子流程,如herehere所示。

答案 1 :(得分:0)

另一个选项是Dots情节,由MathGL制作。它是GPL绘图库。如果以位图格式(PNG,JPEG,GIF等)保存,则添加它不需要很多内存。