我知道我可以通过ax.get_yticks()
得到我的y-ticks的位置(顺便说一下,这是获得它们的最佳/正确方法吗?)。但是我需要相对于轴限制的刻度位置(即,在0和1之间)。最好的方法是什么?我尝试了ax.get_yticks(transform=ax.transAxes)
,但无效。
答案 0 :(得分:4)
这种转变可以很容易地手工完成:
y_min, y_max = ax.get_ylim()
ticks = [(tick - y_min)/(y_max - y_min) for tick in ax.get_yticks()]
<强>更新强>
要使用日志比例,我们需要使用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]