Matplotlib - 沿同一轴的不同刻度标签对齐

Lir*_*ris 3 matplotlib subplot axis-labels

我有一个带有很多子图的图形,因此轴的最后一个刻度标签写在下一个刻度标签的第一个刻度标签上。 请参阅此处的示例

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

    plt.xticks([0], ha = 'left')
    plt.xticks([0.2,0.4], ha = 'center')
    plt.xticks([0.6], ha = 'right')
Run Code Online (Sandbox Code Playgroud)

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

希望我很清楚!

有任何想法吗 ?

Imp*_*est 5

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

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()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明