Python matplotlib获取轴相对刻度位置

Python matplotlib获取轴相对刻度位置,python,matplotlib,axes,Python,Matplotlib,Axes,我知道我可以通过ax.get_yticks()(顺便说一句,这是获得y记号的最佳/正确方法吗?)。但我需要相对于轴限制的刻度位置(即,介于0和1之间)。最好的办法是什么?我尝试了ax.get\u-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()]

我知道我可以通过
ax.get_yticks()
(顺便说一句,这是获得y记号的最佳/正确方法吗?)。但我需要相对于轴限制的刻度位置(即,介于0和1之间)。最好的办法是什么?我尝试了
ax.get\u-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()]
更新

为了使其与原木秤一起工作,我们需要使用。但是变换只能处理
(x,y)
点,因此我们首先需要用一些x坐标(例如,零)来补充y记号:

然后,我们可以将数据坐标转换为显示坐标,然后转换为轴坐标,并取其
y
列:

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

我根本不明白你的问题all@tcaswell我想他想得到坐标轴上的刻度位置。没错,谢谢!这就是我要找的。你为什么要这个?我怀疑你正在以非常艰难的方式做某事;)因为它不起作用,我必须去掉重叠的标签,同时在绘图之间没有间隙。很好的解决方案!可能会失败,但如果轴是在日志规模。正是-我所做的是工作。但也许有一些更通用的方法?对于更通用的方法,您总是可以修补转换,但它更麻烦,而且不是pythonic。然而,为了完整性,我将其添加到答案中。
ticks = ax.transAxes.inverted().transform(ax.transData.transform(crd))[:,1]