我很难理解传奇处理。来自官方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])
以TypeError: __init__() got multiple values for keyword argument 'handles'
失败。
我做错了什么?有任何想法吗?
我的matplotlib版本为1.3.1
。我在Ubuntu 14.04 ..
这是完整的回溯(在python脚本中使用上面的行)
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'
答案 0 :(得分:9)
只需删除handles
关键字
使用它:
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])
答案 1 :(得分:4)
我遇到了与Jan相同的问题,在Ubuntu 14.04上运行Matplotlib 1.3.1。我尝试了Kobi K发布的答案。他的代码没有引起任何错误。但是,图例无法正确呈现: 我升级到Matplotlib 1.5.1,现在可以使用Jan发布的代码正确渲染图例,其中包括&#39;处理&#39;关键字(即Matplotlib legend guide中显示的代码):
答案 2 :(得分:2)