2014-04-04 90 views
0

我使用Python的,我有以下問題:製作3D圖形了3D直方圖矩陣

我的數據是由3D點,其實辦法不多做一個簡單的散點圖。因此,我必須將數據「存入」網格。

我通過使用3D-直方圖製作此(和也有其他的優點,我使用一個三維直方圖):

import numpy as np 
"""Where x,y,z are given and binx,biny,binz are calculated some steps before""" 
values = np.column_stack((x,y,z)) 
H, edges = np.histogramdd(values, bins=(binx,biny,binz)) 

因此現在我有尺寸的「基體」 H(BINX, biny,賓茲)。我認爲它是以z-dircetion堆疊的二維直方圖(數量爲binz)。

所以我可以用Axes3D將它們繪製成一個三維立方體,沿z軸有一個2D直方圖。像這樣的:3D-Stacked 2D histograms in matplotlib pyplot

但知道我想從這些切片中製作一個完整的3D圖。

我認爲有兩種方式:

  • 打造3D密度地圖這些直方圖(高斯濾波),並與Mayavi的
  • 或者其他可能(我不喜歡)繪製這個,只在2D網格中繪製二維直方圖的單元格,並且顏色應該指示單元格中的「真實點」數量。

但是我甚至無法完成其中的一個!我可以做很多類似的任務,但沒有什麼可以真正採用3D直方圖並製作我想要的圖。

回答

0

你看過matplotlib的3D繪圖功能嗎?

這裏是一個例子:http://matplotlib.org/examples/mplot3d/scatter3d_demo.html

+0

嘿謝謝你的回答。是的,我看過那個,但那不是我所需要的。爲此,我需要一個「4D」點(x,y,z,顏色),並且我只有(x,y,z)或直方圖...但不是全部。我不知道如何將它們組合成「4D」點。 – user3498682