[英]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.