我知道我可以通过以下方式获得 y 刻度的位置ax.get_yticks()
(顺便说一句,这是获得它们的最佳/正确方法吗?)。但我需要相对于轴限制的刻度位置(即在 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 http://matplotlib.org/users/transforms_tutorial.html。但转换只能与(x,y)
点,所以我们首先需要用一些 x 坐标(例如零)补充 y 刻度:
crd = np.vstack((np.zeros_like(ax.get_yticks()), ax.get_yticks())).T
然后我们可以将数据坐标转换为显示坐标,然后转换为轴坐标并取y
其栏目:
ticks = ax.transAxes.inverted().transform(ax.transData.transform(crd))[:,1]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)