如何删除matplotlib图例中的额外字符串“Line2D”

时间:2014-10-22 03:20:49

标签: python matplotlib

我在matplotlib图例的开头附加了一个字符串“Line2D”。如何摆脱它?重现此问题的简单python脚本如下:

import numpy as np
import matplotlib.pylab as plt

x=np.linspace(0,1,20)
y=np.sin(2*x)
z=np.cos(2*x)

p1, = plt.plot(x,y, label='sin(x)')
p2, = plt.plot(x,z, label='cos(x)')
plt.legend([p1, p2])
plt.show()

我得到一个数字,我想摆脱传奇中的额外字符串“Line2D”。我没有足够的声誉来发布图片。如果重要的话,我正在使用anaconda python。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:19)

如果只将一个列表传递给legend,则必须是要显示的标签,而不是要显示其标签的对象。它将这些行对象转换为字符串,这将提供Line2D(...)

由于您在创建行标签时给出了行标签,因此您无需向legend传递任何内容。只需plt.legend()即可自动使用您提供的标签。

答案 1 :(得分:4)

您可以使用plt.legend(handles=[p1, p2])