我想控制輪廓圖上matplotlib clabels的位置,但不使用clabel中的manual = True標誌。例如,我想指定一個x座標,並在通過這條線的點上創建標籤。我發現你可以使用get_position()來獲取各個標籤的位置,但我堅持這一點。任何幫助將不勝感激。謝謝!Matplotlib輪廓Clabel位置
回答
不,內置matplotlib沒有辦法做到這一點。您應該或者與默認位置一起居住,或者與手動和使用鼠標完全交互。
您可能想將其作爲上游的錯誤報告進行存檔,以便他們改進算法。
有多種方法可以解決這個問題。第一個是以編程方式將文字放置在輪廓圖上。您將無法以這種方式可靠地刪除文本下方的線條。假設你有一個輪廓c
,你可以在c.collections
找到輪廓線。對於每條輪廓線調用get_paths
並將文本放置在該路徑上。
另一個選項將是用於替換手動放置的代碼(在matplotlib.contour.BlockingContourLabeler
)或調整該查找標籤位置(在matplotlib.contour.locate_label
)的代碼,但兩者的功能是相當緻密的。如果你能拿出爲locate_label
的更換部件,只是簡單地覆蓋舊的方法在你順便說一句繪製的宏
def your_locate_label(self, linecontour, labelwidth):
# some magic
pass
ar = np.array([[1,0], [0,1]]
c = matplotlib.contour(ar)
c.locate_label = your_locate_label
c.clabel()
,如果你使用ipython
您可以輕鬆地
%psource c.clabel
查看從交互式會話功能源
或直接調用您的文件$EDITOR
是它與
%edit c.clabel
是的,現在有規定是一種控制標籤位置的方法! https://github.com/matplotlib/matplotlib/pull/642
plt.figure()
CS = plt.contour(X, Y, Z)
manual_locations = [(-1, -1.4), (-0.62, -0.7), (-2, 0.5), (1.7, 1.2), (2.0, 1.4), (2.4, 1.7)]
plt.clabel(CS, inline=1, fontsize=10, manual=manual_locations)
手動均可X,Y的迭代對象元組。將創建輪廓標籤,就像在每個x,y位置點擊鼠標一樣。 – Faber 2014-12-02 21:40:55
有沒有辦法讓自動貼標籤,然後遍歷標籤來刪除(也許改進)任何相交的軸? – 2016-02-24 21:13:29
- 1. Python clabel文字外輪廓
- 2. 位置的輪廓線
- 3. matplotlib繪製橢圓輪廓
- 4. 動畫與輪廓matplotlib
- 5. python matplotlib plot3d輪廓長度
- 6. 繪製輪廓點 - Matplotlib/Python
- 7. Matplotlib輪廓圖爲postscript
- 8. Matplotlib輪廓圖標籤
- 9. Matplotlib輪廓不起作用
- 10. 輪廓匹配 - 找到輪廓位移
- 11. 如何設置爲默認matplotlib輪廓圖總是標記輪廓
- 12. 當輪廓不存在時,Matplotlib輪廓圖失敗
- 13. 用matplotlib創建的輪廓使用opencv計算輪廓區域
- 14. matplotlib中的輪廓標籤填充輪廓錯誤?
- 15. matplotlib中的輪廓不會繪製輪廓的指定數量
- 16. 改變clabel的文本Matplotlib
- 17. 從輪廓位置生成邊界框
- 18. Matplotlib - 具有單個值的輪廓圖
- 19. Matplotlib中輪廓下方的網格線
- 20. matplotlib在3D中輪廓標籤
- 21. 覆蓋Matplotlib中的輪廓圖
- 22. 如何從Matplotlib格式化輪廓線
- 23. 用matplotlib指定輪廓的RGB顏色
- 24. 帶有空白區域的Matplotlib輪廓
- 25. Matplotlib輪廓:無效的GridData指數
- 26. 獲取輪廓的每個級別 - Matplotlib
- 27. matplotlib輪廓圖與lognorm - colorbar級別
- 28. 使用pcolormesh和輪廓的Matplotlib動畫
- 29. 如何用matplotlib正確創建輪廓?
- 30. matplotlib - 從輪廓線提取值
我沒有發現這個問題貼,所以我做了一個新問題:https://github.com/matplotlib/matplotlib/issues/613 – keflavich 2011-12-07 18:42:15