在Matploblib中拆分传奇

2022-04-08 00:00:00 python matplotlib legend

问题描述

是否可以将单个大图例拆分为多个(通常为2个)较小图例。

from pylab import *

t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plot(t, s, linewidth=1.0, label="Graph1")
grid(True)
s = sin(4*pi*t)
plot(t, s, color='r',linewidth=1.0, label="Graph2")

legend(loc='lower left')
show() 

我想将图例一分为二,并将它们放在有空白处。


解决方案

我从http://matplotlib.sourceforge.net/users/plotting/examples/simple_legend02.py

得到了答案
from pylab import *

t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
p1, = plot(t, s, linewidth=1.0, label="Graph1")
grid(True)
s = sin(4*pi*t)
p2, = plot(t, s, color='r',linewidth=1.0, label="Graph2")

l1 = legend([p1], ["Graph1"], loc=1)
l2 = legend([p2], ["Graph2"], loc=4)
gca().add_artist(l1)

show() 

在这里,唯一的缺点是我必须给标签名指定两次。

相关文章