【问题标题】:Matplotlib - Different tick label alignment along the same axisMatplotlib - 沿同一轴的不同刻度标签对齐
【发布时间】:2018-08-30 22:05:20
【问题描述】:

我有一个带有很多子图的图形,因此轴的最后一个刻度标签写在下一个刻度的第一个刻度标签上。 See example here

由于我想在设置时保持子图之间的间距,因此我希望根据刻度有不同的对齐方式,因为它可以由以下方式产生:

    plt.xticks([0], ha = 'left')
    plt.xticks([0.2,0.4], ha = 'center')
    plt.xticks([0.6], ha = 'right')

使用它,图中只显示了 xticks 的最后一次调用。换句话说,这个想法是对齐第一个和最后一个刻度标签,以便它们留在子图中。

希望我清楚!

有什么想法吗?

【问题讨论】:

    标签: matplotlib axis-labels subplot


    【解决方案1】:

    修复刻度后,您将能够访问和设置刻度标签的对齐方式,以避免相邻子图之间的重叠。

    import matplotlib.pyplot as plt
    
    plt.rcParams.update({"xtick.direction" : "in", 
                         "ytick.direction" : "in",
                         "figure.subplot.wspace" : 0.02,
                         "axes.xmargin" : 0,
                         "figure.figsize" : (5,2.4)})
    
    fig, axes = plt.subplots(1,2, sharey=True)
    for ax in axes:
        ax.plot([0,.3,.6], [0,1,2])
        # Fix ticks
        ax.set_xticks([0,.2,.4,.6])
        # Get ticklabels for fixed ticks
        ticklabels = ax.get_xticklabels()
        # set the alignment for outer ticklabels
        ticklabels[0].set_ha("left")
        ticklabels[-1].set_ha("right")
    
    plt.show()
    

    【讨论】:

    • 非常感谢,这正是我想要的!
    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 2021-10-29
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2012-12-19
    • 2016-09-20
    • 2012-03-14
    相关资源
    最近更新 更多