首页 > 解决方案 > matplotlib twinx() 同一左轴上的第二个轴标记

问题描述

假设我使用类似于此演示的 twinx() 创建辅助 y 轴

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

在此处输入图像描述

标签: pythonmatplotlibtwinx

解决方案


使用最新版本的 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. 但是你应该得到这样的东西:

在此处输入图像描述


推荐阅读