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