Matplotlib 图例:标记上方的标签

Posted

技术标签:

【中文标题】Matplotlib 图例:标记上方的标签【英文标题】:Matplotlib legend: labels above markers 【发布时间】:2014-11-26 10:55:48 【问题描述】:

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

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

出于各种审美原因,我希望图例中的列数等于行数(和标签),我使用ncol 选项进行更改。所以,目前,我的传说是这样的:

标记:标签     标记:标签     标记:标签

不过,在这种排列方式中,将标签置于标记之上对我来说会更清楚。我想要的是这样的:

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

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

【问题讨论】:

您找到解决此问题的“快速解决方案”了吗?我也有兴趣这样做。 从文档看来,唯一的选项是标记:标签或标签:标记。 【参考方案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 位置,可以实现标记顶部的对齐。

【讨论】:

以上是关于Matplotlib 图例:标记上方的标签的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 获取图例标记的坐标

Python matplotlib图例如何减少框架左边缘和标记之间的距离

禁止警告:matplotlib.legend:没有发现带有标签的句柄放在图例中

在 Pandas/Matplotlib 上输入图例后命名堆积条

如何为 matplotlib 图例命名

Matplotlib:从头开始制作彩色标记图例