2015-07-28 122 views
3

我很難用Matplotlib在應用主成分分析或線性判別分析後,在三維中直觀地顯示我的數據的重投影結果。在做散點圖之後,我無法旋轉數據或在變焦時輕鬆進行變換(即使縮放後旋轉軸也保持不變),並且如果縮放太多點就會消失),並且每次更改都需要一秒鐘的時間。 Matplotlib非常有用,但對於這個特定的用例,它開始變得非常令人沮喪,因爲它可能不是爲這樣的任務設計的。在Python中是否有替代Matplotlib的方法,可以更好地處理三維散點圖,並且可以在雲中流暢地導航?Matplotlib替代三維散點圖

下圖顯示了一個示例。我已經繪製了與特定類對應的每個數據聚類周圍的球體,並用紅色繪製了重疊的球體。現在我想看看這些球體是如何相交的。我認爲Matplotlib最大的問題在於它不允許用鼠標移動整個圖形,它只允許圍繞固定點旋轉,這使得一旦放大一點就會變得非常混亂。

enter image description here

+0

不確定具體是什麼你的問題是沒有代碼,但你看這裏:http://pythonprogramming.net/matplotlib-3d-scatterplot-tutorial/ – jfish003

+0

正如我剛剛說的,Matplotlib不允許一個很好的旋轉和縮放雲。當你繪製幾千點時,它就像地獄一樣落後。 – Mehdi

+0

您可以使用三角形圖來顯示從K維空間到2D的不同投影(https://github.com/dfm/triangle.py) –

回答

4

matplotlib是不太成熟的3D圖形: http://matplotlib.org/mpl_toolkits/mplot3d/faq.html

mplot3d的目的是允許用戶與創建簡單的3D圖形相同的「外觀和感覺」 matplotlib的2D地塊。此外,用戶可以使用他們已經熟悉的相同工具包來生成他們的2D和3D圖。

我不認爲在3D陰謀的容易導航是容易實現的(甚至沒有調整lib的3D縮放是不可能的)。 mplot3d並不是真的打算成爲一個完整的3D圖形庫,但對於那些需要基本3D和熟悉matplotlib二維繪圖結構的人來說,它更加不錯。

你可能想看看Mayavi的(這是非常好的):

MayaVi2是一個非常強大的,多特徵的3D圖形庫。對於高級3D場景和優秀的渲染功能,建議使用MayaVi2。

注意,與matplotlib,Mayavi的是尚未與Python3兼容(可能無法在可預見的未來),所以你需要一個Python2安裝。