【问题标题】:How to plot a data cube in python如何在python中绘制一个数据立方体
【发布时间】: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 plot cube


【解决方案1】:

您可以使用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 也可以直接用作子进程,如herehere 所示。

【讨论】:

  • 谢谢!除了明显的 x 和 y 标签,我还能问你如何添加 zlabel 吗?我尝试使用 pyploy.zlabel("my_label") 但它没有用。此外,如果积分太多,则此代码会卡住。我怎样才能对它们应用高斯滤波器来平滑它们并仍然拥有漂亮的 3D 绘图?
  • 另一件事。如何在绘图中添加标题并且颜色条显示颜色的图例?
  • ax.set_zlabel('Z')。 ax.set_title('小米标题').你可以为其他人做实验,或者问 SO。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多