我的數據文件包含隨機分散的數據在x,y平面上。我想要的是用純色填充分散的區域。我的數據沒有排序。我試圖在matplotlib中使用scatterplot,但是我的數據文件中的點數很大,因此將它們分散繪製會使得結果大小相當大。分散的數據形成x,y平面上的小島。如何在matplotlib中填充零散區域?
回答
import numpy as np
import matplotlib.pylab as plt
x=np.random.rand(10)
y=np.random.rand(10)
plt.figure()
plt.fill(x,y,'b')
plt.show()
還有一個fill_between,使用numpy的的histogram2d方法的y值的兩行 matplotlib documentation of them both
可以計算出x的直方圖(2D)之間進行填充。然後,繪製對所有非零分箱都爲真的數組,對所有零分箱設置爲false。您可以使用參數bins
來控制直方圖的分辨率。此方法返回3個數組的元組:2D直方圖和兩個1D數組,分別對應每個「邊」(x然後y)的倉步驟。您可以使用range
參數控制步驟值。
例如:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(101)
x = np.random.normal(0,1,10000)
y = np.random.normal(0,1,10000)
hist,xedge,yedge= np.histogram2d(x,y,bins=100,range=[[-4,4],[-4,4]])
plt.imshow(hist==0,
origin='lower',
cmap=plt.gray(),
extent=[xedge[0],xedge[-1],yedge[0],yedge[-1]])
plt.savefig('hist2d.png')
plt.show()
這導致:
黑點顯示,你有任何的數據,白點是不存在的數據。直方圖使用imshow
方法顯示,該方法用於繪製圖像或矩陣。默認情況下,它將原點設置爲左上角,因此您要麼想要更改參數origin='lower'
,要麼需要適當調整extent
參數,該參數控制範圍值:[intial x,final x,initial y,final y ]。您可以通過調整color map來控制配色方案。
由於@joaquin提到的意見,你也可以簡單地繪製imshow(hist)
看到全方位的值(熱圖),而不是0或1
+1你可以通過一個熱圖來執行'plt.imshow(hist)'。也許OP更喜歡它,因爲它在每個點都給出了密度的感覺,不僅是/否(更好) – joaquin 2012-01-09 20:48:09
+1作爲一個方面說明,儘管'histogram2d'對於大量點是無效的。如果您使用它的數量超過幾萬個點,則會遇到內存問題。迭代或欺騙'scipy.sparse.coo_matrix'爲你做這件事變得快得多。 – 2012-01-09 21:06:19
Woops,部分劃傷了我以前的評論,如果你的箱子數量很少,即使有很多點數,它也相當快。當您同時擁有大量垃圾箱和大量點時,它的效率會比其他解決方案低。另外,我對它效率低下的記憶是基於更早的版本。即使在最近的numpy版本的情況下,它仍然是非常有效的。 – 2012-01-09 21:14:13
- 1. 在matplotlib中修改填充區域
- 2. 如何在Matplotlib中填充任意封閉區域?
- 3. 用matplotlib填補區域的補充
- 4. 如何在Python中使用matplotlib填充多邊形內的區域?
- 5. Mapster填充區域
- 6. ZedGraph填充區域
- 7. Matplotlib散點圖 - 刪除白色填充
- 8. AutoCAD .NET:用網格/自定義填充區域填充區域
- 9. 如何擺脫div的填充區域?
- 10. ax.fill()在matplotlib填寫錯誤區域
- 11. 如何填充matplotlib網格?
- 12. 在javascript中填充六角形區域
- 13. 在Java中填充單擊的區域
- 14. 如何在散點圖上填充上下邊界曲線之間的區域
- 15. opencv:如何填充區域外的區域/邊緣
- 16. 如何在scipy.fftpack中爲二維數組填充零填充?
- 17. 用黑色填充區域
- 18. openlayers填充空白區域
- 19. SQL:找填充區域
- 20. GridBagLayout不填充區域
- 21. 用孔填充區域
- 22. 如何在Rails中預先填充長文本區域的文本區域?
- 23. 在Python中使用Matplotlib在曲線和x軸之間填充區域
- 24. 如何繪製用ggplot過零的離散填充輪廓?
- 25. 零填充在FFT
- 26. 如何自動填充在Fireworks中創建的文本區域?
- 27. 如何在MATLAB中填充3D圖形下面的區域?
- 28. 如何在Matlab中填充曲線下的區域
- 29. 如何在Android中的貝塞爾曲線下填充區域
- 30. 如何在javafx中設置單個BorderPane區域的填充
你能使用的等高線圖?例如,請參閱['matplotlib.pyplot.contourf'](http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.contourf)。 – Chris 2012-01-09 19:35:09