我有一个很杂乱的图,带有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/