我正在使用matplotlib散點圖3D矩陣的點。 我使用下面的代碼:matplotlib緩慢的3D散射旋轉
import pylab as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
my_data = np.random.rand(6500,3) # toy 3D points
fig = plt.figure()
ax = Axes3D(plt.gcf())
ax.scatter(my_data[:,0],my_data[:,1],my_data[:,2])
plt.show()
它的工作原理,所以它會打開一個窗口,在那裏我可以看到我的觀點。
但是,如果我嘗試用鼠標旋轉繪圖(單擊並拖動它),它會非常慢地旋轉。
我認爲6500分對於如此緩慢和緩慢的旋轉並不是很多,所以我想知道是否有任何預先配置來加速它。
注:我試圖使用Matlab,我可以旋轉一個更大的散點圖沒有任何滯後,所以它不是一個計算機的限制。
有人可以運行此代碼,看看是否也經歷慢速旋轉?
編輯:使用系統監視器我可以看到,旋轉點時,只有一個CPU被使用,所以matplotlib不是並行化的過程。
我的電腦規格:
- 英特爾(R)核心(TM)i5-3550 CPU @ 3.30GHz
- 圖形卡:至強E3-1200 V2 /第三代核心處理器圖形控制器
- 內存:10GB RAM
- 硬盤:三星SSD 500 GB
運行Ubuntu 16.10
我擔心matplotlib的設計不是考慮到速度問題,在你的情況下性能低下並不是你本地安裝的特定問題 - 這就是mplot3d的編寫方式。如果你想使用Python的快速三維散點圖,你可以檢查'plotly.py'庫 - 它非常快,雖然它的python功能有些限制。 –
回聲什麼@VlasSokolov說 - matplotlib不是設計用於快速交互式繪圖,特別是在3D(這不是一個真正的全面的3D功能,更多隻是爲了方便)。你也可以看看mayavi進行3D繪圖。另外,作爲一個Python提示 - 我會建議不要將'import pylab as plt'。 'plt'通常用於'matplotlib.pyplot' * not *'pylab'。你可能發現的任何例子都是舊的。此外,不推薦在腳本中使用pylab作爲良好實踐 - 分別使用matplotlib和numpy。 – Ajean
請參閱https://stackoverflow.com/questions/8955869/why-is-plotting-with-matplotlib-so-slow – thomaskeefe