在python中使用相同的标签和颜色打印序列

在python中使用相同的标签和颜色打印序列,python,matplotlib,visualization,Python,Matplotlib,Visualization,我有一组序列要绘制。所有这些都应绘制在同一图表上,但其中一些应具有相同的标签和颜色 plt.clf() for j in range(k) plt.plot(lower_graphs[j, :], label=str(alphas_vis[i])) plt.plot(upper_graphs[j, :], label=str(alphas_vis[i])) plt.lengend() plt.show() 使用下面的代码,每个序列都有自己的标签和颜色 plt.clf() for

我有一组序列要绘制。所有这些都应绘制在同一图表上,但其中一些应具有相同的标签和颜色

plt.clf()
for j in range(k)
    plt.plot(lower_graphs[j, :], label=str(alphas_vis[i]))
    plt.plot(upper_graphs[j, :], label=str(alphas_vis[i]))
plt.lengend()
plt.show()
使用下面的代码,每个序列都有自己的标签和颜色

plt.clf()
for j in range(k)
    plt.plot(lower_graphs[j, :], label=str(alphas_vis[i]))
    plt.plot(upper_graphs[j, :], label=str(alphas_vis[i]))
plt.lengend()
plt.show()

好了,现在我明白了。因此,您希望使用matplotlib自动为绘图着色,但具有相同标签的线应共享颜色和图例条目。您可以做的是在创建绘图后迭代所有线和标签。每个已经存在的标签都会得到相同的颜色,而它的图例条目会被前面的下划线所覆盖。(自动图例中不显示开头带有“\”的标签):

循环前:

循环后:


好的,现在我明白了。因此,您希望使用matplotlib自动为绘图着色,但具有相同标签的线应共享颜色和图例条目。您可以做的是在创建绘图后迭代所有线和标签。每个已经存在的标签都会得到相同的颜色,而它的图例条目会被前面的下划线所覆盖。(自动图例中不显示开头带有“\”的标签):

循环前:

循环后:

不,现在我明白了…:-)

如果您有两组固定的序列(即“上”和“下”),并且您知道一个图例条目始终代表每组中的一个,您可以只标记一个集合并手动为另一个集合着色,因此您的代码更改为:

for j in range(k)
    p = plt.plot(lower_graphs[j, :], label=str(alphas_vis[i]))
    plt.plot(upper_graphs[j, :], c=p[0].get_c()))
plt.legend()
下面的另一个答案适用于更一般的情况,您可以任意将任何序列设置为与任何其他序列相同的名称。

不,现在我明白了…:-)

如果您有两组固定的序列(即“上”和“下”),并且您知道一个图例条目始终代表每组中的一个,您可以只标记一个集合并手动为另一个集合着色,因此您的代码更改为:

for j in range(k)
    p = plt.plot(lower_graphs[j, :], label=str(alphas_vis[i]))
    plt.plot(upper_graphs[j, :], c=p[0].get_c()))
plt.legend()

下面的另一个答案适用于更一般的情况,您可以任意将任何序列设置为与其他任何序列相同的名称。

您的问题到底是什么还不清楚,因为显然您有一系列标签,这对您很有好处,因此,你也可以生成一组适合你需要的颜色,并在你的循环中使用。你是对的,我有一组标签,plt无法理解我是否对不同的序列使用相同的标签。e、 g.如果我对两个序列“s1”、“s2”使用标签“l”,而不是为两个序列分配一个标签,则plt为每个序列分配两个不同的“l”标签;“事实并非如此。”艾哈迈达斯加里扬雷扎伊我建议阅读。你的数据结构还不清楚。你的问题到底是什么还不清楚,因为很明显你有一个对你有好处的标签数组,所以你也可以生成一个适合你需要的颜色数组,并在你的循环中使用它。你是对的,我有一个标签数组,plt无法理解我是否对不同的序列使用相同的标签。e、 g.如果我对两个序列“s1”、“s2”使用标签“l”,而不是为两个序列分配一个标签,则plt为每个序列分配两个不同的“l”标签;“事实并非如此。”艾哈迈达斯加里扬雷扎伊我建议阅读。您的数据结构仍然不清楚。但是,这是最困难的方法。谢谢你的回答,也谢谢你的努力。正如我在另一个回答中所说:这是一般情况。我猜了很多,所以我认为另一个答案更适合你的需要。然而,这是最困难的方法。谢谢你的回答,也谢谢你的努力。正如我在另一个回答中所说:这是一般情况。我猜了很多,所以我认为另一个答案更适合你的需要。