Matplotlib >1 线型,同一线,每线不同颜色

Matplotlib >1 Line Style, Same Line, Different Colors per Line

给定以下数据框和折线图:

import matplotlib.pyplot as plt
from cycler import cycler
import numpy as np
fig, ax=plt.subplots(1)
d=pd.DataFrame({'a':[1,2,3,4],
                'b':[2,3,4,5],
                'c':[3,4,5,6]})
colors=['r','g','b']
ax.set_prop_cycle(cycler('color', [colors]))
ax.plot(d[:3],'-ko',d[2:],'--ko')
plt.show()

您会注意到我试图为每行分配一种颜色,但它不起作用。我还尝试在 ax.plot 中使用颜色参数。 看来这应该是直截了当的。

在此先感谢您对此提供的任何帮助。

您的代码中有两个问题。

  1. '-ko''--ko' 中的 'k' 将颜色设置为黑色,因此我们需要删除

  2. colors 已经是一个列表,但是您在对 set_prop_cycle 的调用中再次将其放在方括号内,从而使其成为嵌套列表:[['r','g','b']]。删除那里的方括号,一切正常:ax.set_prop_cycle(cycler('color', colors))

因此,您的代码将如下所示:

import matplotlib.pyplot as plt
import pandas as pd
from cycler import cycler
import numpy as np
fig, ax=plt.subplots(1)
d=pd.DataFrame({'a':[1,2,3,4],
                'b':[2,3,4,5],
                'c':[3,4,5,6]})
colors=['r','g','b']
ax.set_prop_cycle(cycler('color', colors))
ax.plot(d[:3],'-o',d[2:],'--o')
plt.show()