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 图例:标记上方的标签的主要内容,如果未能解决你的问题,请参考以下文章
Python matplotlib图例如何减少框架左边缘和标记之间的距离
禁止警告:matplotlib.legend:没有发现带有标签的句柄放在图例中