首页 > 解决方案 > 居中多行图例标题

问题描述

我想将我的多行图例标题完全居中。

当标题跨越一行时,它是居中的。当它跨越多条线时,似乎最长的线居中,然后所有其他线都相对于最长的线左对齐。

我查看了matplotlib.font_manager.FontProperties课程,在那里我看到我可以将标题加粗,但似乎没有任何居中选项。感谢任何建议!

fig, ax = plt.subplots()
ax.plot([0, 1, 2, 3], [4, 1, 2, 5], label='Very Long label A')
ax.plot([0, 1, 2, 3], [3, 5, 4, 1], label='Very Long label B')

leg = ax.legend()
leg.set_title('Legendary\nTitle', prop={'size': 12, 'weight':'bold'})

在此处输入图像描述

标签: pythonmatplotliblegend

解决方案


使用的另一种方法TeX是设置multialignment图例标题的参数。我看不到在创建它时设置它的方法,但由于它只是一个 matplotlibText对象,我们可以在使用该.set_multialignment()函数设置标题后执行此操作,如下所示:

leg = ax.legend()
leg.set_title('Legendary\nTitle', prop={'size': 12, 'weight':'bold'})
leg.get_title().set_multialignment('center')

在此处输入图像描述


推荐阅读