[Matplotlib-users] Editing legend labels

Lorenzo De Leo lorenzo.deleo at gmail.com
Tue Jan 26 06:24:29 EST 2016


Hello,

I have a problem with the way the legend labels are handled, certainly due
to my poor knowledge of matplotlib internals.

Here an example (matplotlib-1.4.3, py-2.7):

In [1]: import matplotlib.pyplot as plt

In [2]: plt.plot([1,2,3], label='A')
Out[2]: [<matplotlib.lines.Line2D at 0x7f60749be310>]

In [3]: plt.plot([2,3,4], label='B')
Out[3]: [<matplotlib.lines.Line2D at 0x7f60749f1850>]

In [4]: ax = plt.gca()

In [5]: l = ax.get_legend_handles_labels()

In [6]: l
Out[6]:
([<matplotlib.lines.Line2D at 0x7f60749be310>,
  <matplotlib.lines.Line2D at 0x7f60749f1850>],
 [u'A', u'B'])

In [7]: plt.legend(['C', 'D'])  ### This correctly modifies the legend to
show 'C' and 'D', but then ...
Out[7]: <matplotlib.legend.Legend at 0x7f6081dce190>

In [10]: l = ax.get_legend_handles_labels()

In [11]: l
Out[11]:
([<matplotlib.lines.Line2D at 0x7f60749be310>,
  <matplotlib.lines.Line2D at 0x7f60749f1850>],
 [u'A', u'B'])

At this point I have no idea how to retrieve the list of shown labels, i.e.
['C', 'D'].
What am I missing? What other method should I use?

Thanks in advance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20160126/4e414f74/attachment.html>


More information about the Matplotlib-users mailing list