我有一个非常混乱的情节,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()
我已经检查了plt.tick_params()
rcParams
而未找到任何明显的解决方案。我使用 latex 来格式化文本,但尝试在刻度标签字符串中使用\hspace(0.5em}
似乎不起作用/只会让事情变得更糟。
关于如何减少行间距的任何建议都将非常受欢迎。
答案 0 :(得分:0)
您可以在linespacing
行中使用plt.yticks
关键字。例如:
plt.yticks([1], ["A very long label\nbroken into 2 line"],linespacing=0.5)
您可以使用linespacing
的确切值来满足您的需求。希望有所帮助。
以下是代码的原始输出:
这里的网格间距为0.5:
答案 1 :(得分:0)
尝试使用它:
pylab.rcParams['xtick.major.pad']='???'
与......混乱?得到你喜欢的东西的价值。您也可以尝试(唱OO界面):
fig = plt.figure()
ax = fig.add_subplot(111)
ax.tick_params(axis='both', which='major', labelsize=8)
ax.set_yticks([1], ["A very long label\nbroken into 2 line"], linespacing=0.5)
plt.show()
labelsize
命令将改变字体的大小。
将上述内容与rcparams
设置结合使用。