簡體   English   中英

matplotlib獲取軸相對刻度位置

[英]matplotlib get axis-relative tick positions

我知道我可以通過ax.get_yticks()獲取我的y-ticks的位置(順便說一句,這是獲取它們的最佳/正確方法嗎?)。 但是我需要相對於軸限制的刻度位置(即0到1之間)。 最好的方法是什么? 我嘗試了ax.get_yticks(transform=ax.transAxes) ,它不起作用。

可以輕松地手動完成此轉換:

y_min, y_max = ax.get_ylim()
ticks = [(tick - y_min)/(y_max - y_min) for tick in ax.get_yticks()]

UPDATE

要使其與對數刻度一起使用,我們需要使用matplotlib.transforms 但是變換只能與(x,y)點一起使用,因此我們首先需要用一些x坐標(例如零)來補充y-ticks:

crd = np.vstack((np.zeros_like(ax.get_yticks()), ax.get_yticks())).T

然后,我們可以轉換數據共坐標以顯示,然后轉換為軸並取其y列:

ticks = ax.transAxes.inverted().transform(ax.transData.transform(crd))[:,1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM