标签在记号位置居中。它们的边界框宽度不等,甚至可能重叠,这使它们看起来间隔不均。
因为您总是希望ticklebels链接到它们的ticklmarks,所以更改间距实际上不是一个选项。
但是,您可能希望将它们对齐,以便右上角是它们在刻度线下的位置参考。
为此使用horizontalalignment或ha参数并将其设置为"right":ax.set_xticklabels(xticklabels, rotation = 45, ha="right")
结果如下:
另一种方法是保持ticklabels水平居中,但也可以垂直居中。这导致间距相等,但需要进一步调整其相对于轴的垂直位置。ax.set_xticklabels(xticklabels, rotation = 45, va="center", position=(0,-0.28))
如果像问题中那样手动指定记号(例如通过plt.xticks或通过ax.set_xticks),或者如果使用分类图,则可以使用上述选项。
如果标签是自动显示的,则不应使用set_xticklabels。这通常会使标签和刻度位置变得不同步,因为set_xticklabels将轴的格式化程序设置为FixedFormatter,而定位器保持自动AutoLocator,或任何其他自动定位器。