Python 仅为绘图中的曲线子集显示图例

Python 仅为绘图中的曲线子集显示图例,python,matplotlib,Python,Matplotlib,我需要做已经在这里为MATLAB解释过的事情: 但是用Python代替MATLAB 我的目标的简要总结:例如,当以以下方式绘制三条曲线时 from matplotlib import pyplot as plt a=[1,2,3] b=[4,5,6] c=[7,8,9] # these are the curves plt.plot(a) plt.plot(b) plt.plot(c) plt.legend(['a','nothing','c']) plt.show() 我不想在那里有任何东

我需要做已经在这里为MATLAB解释过的事情:

但是用Python代替MATLAB

我的目标的简要总结:例如,当以以下方式绘制三条曲线时

from matplotlib import pyplot as plt
a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
# these are the curves
plt.plot(a)
plt.plot(b)
plt.plot(c)
plt.legend(['a','nothing','c'])
plt.show()

我不想在那里有任何东西,而不是“什么都没有”

使用
将抑制特定条目的图例,如下所示(继续阅读以将下划线
”作为图例处理)。此解决方案的动机是最近发布的@ImportanceOfBeingEarnest

我还要避免您现在放置图例的方式,因为这样,您必须确保绘图命令与图例的顺序相同。相反,将
标签
放在相应的绘图命令中以避免错误

话虽如此,简单明了的解决方案(在我看来)是执行以下操作

plt.plot(a, label='a')
plt.plot(b)
plt.plot(c, label='c')
plt.legend()

正如@Lucas在评论中指出的那样,如果您想显示下划线
\uu
作为绘图b的标签,您将如何做。你可以使用

plt.legend(['a','$\_$','c'])

如果你想用文字来命名你的绘图呢?你的意思是
=plt.plot(b)
然后
plt.legend(['a','u','c'))
。在这种情况下,它也可以工作,尽管您会收到用户警告。这就是为什么我写的第二种方法是我认为他的意思是他可能希望在图例中有一个低条,比如命名一条曲线“e_4”不,这不是他的意思,因为你可以很容易地做
plt.legend(['a_4','','c'])
@Lucas是的,你可以做
plt.legend(['a','$\'u$','c'])
。我在答复中增加了你的建议
plt.legend(['a','$\_$','c'])