给出以下数据框和折线图:
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中的colors参数。 看起来这应该是直截了当的。
提前感谢您提供任何帮助。
答案 0 :(得分:1)
您的代码中存在两个问题。
'k'
中的'-ko'
和'--ko'
将颜色设置为黑色,因此我们需要将其删除
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()