matplotlib twinx() 同一个左轴上的第二个轴标记

matplotlib twinx() 2nd axis markers on the same left axis

假设我用类似于此的 twinx() 创建了一个辅助 y 轴 demo

有什么方法可以将次要 y 轴的刻度线和值放在左侧紧邻现有 y 轴的位置,如下所示?

使用最新版本的 Matplotlib,这非常简单。

def add_twin(ax, **kwargs):
    twin = ax.twinx()
    twin.yaxis.tick_left()
    twin.tick_params(axis='y', direction='in', **kwargs)
    for tick in twin.get_yticklabels():
        tick.set_horizontalalignment('right')
    return twin


fig, ax = plt.subplots()
twin = add_twin(ax)
twin.set_yticks((0.1, 0.5, 0.9))

水平对齐部分是关键,您可能需要使用 kwargs 调整打击垫以达到您的目的。但是你应该得到这样的东西: