我有一個大集(100 +)256x256標量2D numpy數組。每個陣列基本上都是通過3D圖像的切片,並且每個陣列均勻分開。Python:2D numpy陣列的大集......如何在3D中可視化?
我是一個python noob ...有關如何創建一個很好的三維可視化這個數據的任何提示?
我是否需要將我的100多個2D標量數組編譯爲更大的3D數組?
乾杯!
我有一個大集(100 +)256x256標量2D numpy數組。每個陣列基本上都是通過3D圖像的切片,並且每個陣列均勻分開。Python:2D numpy陣列的大集......如何在3D中可視化?
我是一個python noob ...有關如何創建一個很好的三維可視化這個數據的任何提示?
我是否需要將我的100多個2D標量數組編譯爲更大的3D數組?
乾杯!
不完全確定您希望可視化效果如何?聽起來有點像你想要可視化4D功能?
您可以在空間中創建3D網格(例如,請參閱Numpy meshgrid in 3D),然後使用矩陣/矩陣數值對散點圖中的點進行着色?
如果你能詳細說明你想看到什麼,可能會更具體。
編輯:
您的評論之後,那它還是聽起來象是非常很難想象,但我想你可以做這樣的事情(我已經生成的隨機數據,並有一個更小的尺寸比你)
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
(X,Y,Z) = np.mgrid[-10:10:25j, -10:10:25j, -10:10:10j]
col = np.random.rand(25,25,10)
fig = plt.figure(1)
fig.clf()
ax = Axes3D(fig)
ax.scatter(X,Y,Z, c=col)
plt.draw()
plt.show()
導致
注意,這可能是少一些無用與期待非隨機數據。
你需要給我們更多的信息,因爲你如何想象它取決於你想從中得到什麼!請注意,此問題總是會有多個可能的答案,因爲您試圖在2D屏幕上顯示固有3D的信息。
這樣做的一種方法是對2D「表面」圖的create a movie,並播放它們。這基本上只是一個接一個地繪製所有切片。
如果你想一次查看所有的3D數據,你很可能不能,因爲我不知道任何用於Python的容積繪圖工具。可能最接近的是MayaVi
如果您向我們提供更多關於您想要完成的信息,請儘可能詳細地說明,我們可以爲您提供更具體的示例/代碼資源。
謝謝。我拿起Mayavi,但我似乎無法找到任何工具來繪製一個簡單的3D標量場! – Draper
你能解釋一下「繪製一個簡單的3d標量場」是什麼意思嗎?你能給我們一個可視化的例子來證明你想要什麼嗎? – staticfloat
首先,您需要找到一個能夠進行3D可視化的庫...然後您可以按照他們的API ... – mgilson