假设我有两组数据要绘制,x1和x2 y1和x2 vs. y2.这里我们可以把x变量作为时间的向量,y是一个矩阵,行数与x相同,有5列,每列是它的单独一行:
for i in range(5):
plt.plot(x1,y1[:,i],x2,y2[:,i],label=labels[i])
plt.legend()
这导致每条线被赋予不同的颜色和单独的标签,其中每个标签重复一次。我怎样才能让for循环中每次迭代的数据都用相同的颜色绘制,并突出一个标签?
假设我有两组数据要绘制,x1和x2 y1和x2 vs. y2.这里我们可以把x变量作为时间的向量,y是一个矩阵,行数与x相同,有5列,每列是它的单独一行:
for i in range(5):
plt.plot(x1,y1[:,i],x2,y2[:,i],label=labels[i])
plt.legend()
这导致每条线被赋予不同的颜色和单独的标签,其中每个标签重复一次。我怎样才能让for循环中每次迭代的数据都用相同的颜色绘制,并突出一个标签?
2条答案
按热度按时间7cjasjjr1#
有很多方法可以实现你所要求的。
这是一个简单的方法,使用第一行的自动着色方案,并提取其颜色分配给第二行。只有第一行获得图例的标签。
nle07wnf2#
您可以通过
plt.plot
中的c
参数定义颜色。如果您将所有这些设置为相同的颜色,则每行都将是相同的颜色:现在,对于标签,为了所有行都有一个标签,您只能标记一行。这可以通过以下方式实现:
这将使所有行的颜色相同(在本例中为黑色),并且标签
Same label
在图例中只出现一次。