如何在 matplotlib 中对齐 y 轴刻度标签左对齐?
下面的第一个答案在这一行给出了渲染器错误: Matplotlib: Aligning y-ticks to the left
pad = max(T.label.get_window_extent().width for T in yax.majorTicks)
下面的第二个答案使用依赖于输入的 text,对于每个 yticklabels 列表,您必须首先找到最佳的 x 位置,然后才能使用。因此,它不是自动化代码的解决方案。
How do you align tick labels in matplotlib?
这是重现问题的代码:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1,1)
ax.plot([0,.25,.5, 1], [0,1,2,3])
ticklabels = ax.get_xticklabels()
ax.set_yticks([0, 1, 2, 3])
yticklabels = []
for i in ['xxxxxxxx', 'yyy', 'zzzzzzzzzzzzz', 'ttttt']:
yticklabels.append(f"{i:<15}")
print(yticklabels)
ax.set_yticklabels(yticklabels )
plt.show()