I have difficulties to understand the legend handling. The more, the basic example from the official matplotlib legend guide
import matplotlib.pyplot as plt
line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend(handles=[line_up, line_down])
fails with TypeError: __init__() got multiple values for keyword argument 'handles'. 
What am I doing wrong? Any ideas?
My matplotlib version is 1.3.1. I am on Ubuntu 14.04..
Here is the full traceback (with the above lines in the python script)
heiland@note121:bauHS15_iomapsgenpod$ python testleg.py 
Traceback (most recent call last):
  File "testleg.py", line 4, in <module>
    plt.legend(handles=[line_up, line_down])
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 3381, in legend
    ret = gca().legend(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 4778, in legend
    self.legend_ = mlegend.Legend(self, handles, labels, **kwargs)
TypeError: __init__() got multiple values for keyword argument 'handles'
                Just remove handles keyword
Use it like that:
import matplotlib.pyplot as plt
line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend([line_up, line_down])
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With