Matplotlib图例:标记上方的标签

时间:2014-10-01 14:47:12

标签: python matplotlib legend legend-properties

我有一个包含多行的图,每行都单独标记。我想在图中加上一个图例,以便识别出各个线条。标签和标记的默认顺序如下所示:

标记:标签
标记:标签
标记:标签
......等等。

出于各种审美原因,我希望我的图例中的列数等于行数(和标签),我使用ncol选项更改。所以,目前,我的传奇看起来像:

标记:标记标记:标记标记:标记

然而,对于我来说,在这种安排中标记高于标记会更加清晰。我想要的是:

标签标签标签
标记标记标记

我想知道是否有“快速修复”方式来实现这样的传奇。

1 个答案:

答案 0 :(得分:1)

最后,我采用legend.get_texts()手动配置图例中文本项的位置,以迭代每个文本对象。一些虚拟代码:

for txt in legend.get_texts():
    txt.set_ha("center") # horizontal alignment of text item
    txt.set_x(-5) # x-position
    txt.set_y(10) # y-position

通过增加y位置,您可以将标签向上推(即在标记上方)。类似地,通过减小x位置,可以在标记的顶部实现对齐。