0
有几种方法可以用matplotlib制作图例。可能是更简单的方法可能是:TypeError:zip参数#2必须支持迭代,使用matplotlib.pyplot.legend()
>>> line_up, = plt.plot([1,2,3], label='Up')
>>> line_down, = plt.plot([3,2,1], label='Down')
>>> plt.legend()
<matplotlib.legend.Legend object at 0x7f527f10ca58>
>>> plt.show()
另一种方式可以是:
>>> line_up, = plt.plot([1,2,3])
>>> line_down, = plt.plot([3,2,1])
>>> plt.legend((line_up, line_down), ('Up', 'Down'))
<matplotlib.legend.Legend object at 0x7f527eea92e8>
>>> plt.show()
这最后的办法似乎只能使用对象支持迭代工作:
>>> line_up, = plt.plot([1,2,3])
>>> plt.legend((line_up), ('Up'))
/usr/lib64/python3.4/site-packages/matplotlib/cbook.py:137: MatplotlibDeprecationWarning: The "loc" positional argument to legend is deprecated. Please use the "loc" keyword instead.
warnings.warn(message, mplDeprecation, stacklevel=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.4/site-packages/matplotlib/pyplot.py", line 3519, in legend
ret = gca().legend(*args, **kwargs)
File "/usr/lib64/python3.4/site-packages/matplotlib/axes/_axes.py", line 496, in legend
in zip(self._get_legend_handles(handlers), labels)]
TypeError: zip argument #2 must support iteration
如果我想只用一条曲线绝对使用第二种方式......我能做什么?
太好了!非常感谢,这正是我期待的!我很惭愧,我没有找到自己......: - (( – servoz