From: John H. <jdh...@ac...> - 2005-07-25 14:29:23
|
>>>>> "Ted" == Ted Drain <ted...@jp...> writes: Ted> The legend() docs state: Make a legend with existing lines >>>> legend() Ted> legend by itself will try and build a legend using the Ted> label property of the lines/patches/collections. You can set Ted> the label of a line by doing plot(x, y, label='my data') or Ted> line.set_label('my data'). If label is set to '_nolegend_', Ted> the item will not be shown in legend. The docs say this only in reference to autolegend capability (eg when you call legend with no arguments). And this does work import pylab as p x = p.arange( 0,3, .1 ) p.plot( x, p.cos(x), label='cos(x)' ) p.plot( x, p.sin(x), label='sin(x)') p.plot( x, 2*p.sin(x), label='_nolegend_' ) p.legend() p.show() It isn't really required in your use case, because you can simply pass the lines and labels you want in the legend import pylab as p x = p.arange( 0,3, .1 ) l0, = p.plot( x, p.cos(x)) l1, = p.plot( x, p.sin(x)) l2, = p.plot( x, 2*p.sin(x)) p.legend((l0, l1), ('cos(x)', 'sin(x)') ) p.show() It would not be too much work to support the semi-auto legending of your example p.legend( ( "cos(x)", "_nolegend_", "2*sin(x)" ) ) if you think this is sufficiently useful. JDH |