假设我需要绘制两组数据,x1vs. 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循环中每次迭代的数据都用相同的颜色绘制,并突出一个标签呢?
谢谢!
假设我需要绘制两组数据,x1vs. 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条答案
按热度按时间e4eetjau1#
您可以通过
plt.plot
中的c
参数定义颜色。如果您将所有这些设置为相同的颜色,则每一行都将是相同的颜色:现在来看标签,为了使所有行都有一个标签,您只能为一行添加标签。这可以通过以下方式实现:
这将使所有线的颜色相同(本例中为黑色),并且标签
Same label
在图例中只出现一次。3npbholx2#
有很多方法可以完成你的要求。
下面是一个简单的方法,它对第一行使用自动着色方案,并提取其颜色分配给第二行。只有第一行获得图例的标签。