【发布时间】:2011-07-29 09:06:36
【问题描述】:
我想知道是否有办法在 Python 中绘制数据立方体。我的意思是每个点都有三个坐标
x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]
对于每一点我都有一个标量场 t(x,y,z)
我想绘制一个 3D 数据立方体来显示该点的位置,并为每个点绘制一个与该点的标量场 t 成正比的颜色。
我尝试使用 histogramdd,但没有成功。
【问题讨论】:
我想知道是否有办法在 Python 中绘制数据立方体。我的意思是每个点都有三个坐标
x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]
对于每一点我都有一个标量场 t(x,y,z)
我想绘制一个 3D 数据立方体来显示该点的位置,并为每个点绘制一个与该点的标量场 t 成正比的颜色。
我尝试使用 histogramdd,但没有成功。
【问题讨论】:
您可以使用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()
您可能必须自定义标量值与相应颜色的关系。
Matplotlib 的外观非常漂亮,但是当你有很多点时,它可能会很慢地绘制和移动这些 3D 绘图。在这些情况下,我曾经使用由gnuplot.py 控制的Gnuplot。 Gnuplot 也可以直接用作子进程,如here 和here 所示。
【讨论】: