在 matplotlib 中更改刻度标签行距

dei*_*aur 5 python formatting latex matplotlib

我有一个非常混乱的情节,带有需要很长的 y-ticklabels。我已经将它们用textwrap. 然而,这使得标签在类别之间重叠(或至少过于接近)。

我无法通过间隔刻度、放大图形、更改字体或缩小文本来解决它。(我已经突破了这些限制)

在我看来,如果我可以将行间距/高度调整为小于字体要求的值,我可以解决并使其工作。

因此,为简单起见,想象一下以下刻度标签迫切需要行/行高度之间更短的行距:

from matplotlib import pyplot as plt
plt.barh(0.75, 10, height=0.5)
plt.ylim(0, 2)
plt.yticks([1], ["A very long label\nbroken into 2 line"])
plt.subplots_adjust(left=0.3)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我检查plt.tick_params()rcParams没有找到任何明显的解决方案。我正在使用乳胶来格式化文本,但尝试\hspace(0.5em}在刻度标签字符串中使用似乎不起作用/只会让事情变得更糟。

关于如何减少行距的任何建议将不胜感激。

tmd*_*son 3

linespacing您可以在行中使用关键字plt.yticks。例如:

plt.yticks([1], ["A very long label\nbroken into 2 line"],linespacing=0.5)
Run Code Online (Sandbox Code Playgroud)

您可以使用 的确切值linespacing来满足您的需求。希望有帮助。

这是代码的原始输出: 默认行间距

这里的行距为 0.5: 在此输入图像描述