2016-03-02 274 views
1

我在一個數組中繪製了大約10,000個項目。他們有大約1,000個獨特的價值。Matplotlib.pyplot.hist()非常慢

這個陰謀已經運行了半個小時了。我確保代碼的其餘部分起作用。

這樣慢嗎?這是我第一次用pyplot繪製直方圖。

+0

是的,我會說這很慢。實際上,它取決於你選擇了多少個垃圾箱,但是對於1000個垃圾箱,我可以在大約一秒或兩秒內繪製10 000個隨機生成的值。 Python 2,筆記本核心Intel i5 os Ubuntu 14.04。顯示一些代碼,它會讓事情變得更簡單。 – ljetibo

+0

其實我只是通過減少箱數來解決它。不過謝謝。 – Fenwick

回答

1

要快速繪製使用matplotlib的直方圖,您需要將histtype='step'參數傳遞給pyplot.hist。例如:

plt.hist(np.random.exponential(size=1000000,bins=10000)) 
plt.show() 

需要約15秒的時間來繪製,大約需要5-10秒來平移或縮放。幾乎立即

plt.hist(np.random.exponential(size=1000000),bins=10000,histtype='step') 
plt.show() 

地塊,可以平移,並沒有延遲縮放:

相比之下,histtype='step'繪圖。