我有一个很杂乱的图,带有y-ticklabel,需要很长。我已采取措施将它们包装成带有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()

我检查了plt.tick_params(),没有找到任何明显的解决方案。我正在使用 latex 设置文本格式,但是尝试在刻度标签字符串中使用rcParams似乎无效/只会使情况变得更糟。

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

最佳答案

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

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

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

这是代码的原始输出:

这是一个0.5的行距:

关于python - 在matplotlib中更改刻度标签行间距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25041157/

10-10 00:31
查看更多