首页 > 解决方案 > 如何根据 Matplotlib 中的属性更改线条的颜色?

问题描述

我到处寻找这个答案 - 抱歉,如果它已经被问过

我正在使用 Python 3,并尝试根据点的颜色连接散点图上的点。

我试过这样做:

plt.plot(al['yearID'], al['Payroll(K)'])

但我明白了: 在此处输入图像描述

我希望线条与图例中显示的颜色相同。我尝试循环遍历数据框以更改颜色,但这不起作用。

有没有办法在设置颜色时枚举数组?就像是:

colors = ["green", "red", "blue"]
plt.plot(al['yearID'], al['Payroll(K)'], colors = *loop through colors array*)

我也尝试过将原始图制作成线图,但 scatter 似乎是唯一可行的。谢谢!

编辑:

对于第一张图:

for i, txt in enumerate(al.teamID):
    team = al['teamID'].iat[i]
    col = color_assignment[team]
    if team in seen:
        plt.scatter(al['yearID'].iat[i], al['Payroll(K)'].iat[i], c = [col])
    else:
        plt.scatter(al['yearID'].iat[i], al['Payroll(K)'].iat[i], c = [col], label = al['teamID'].iat[i])
        seen.append(al['teamID'].iat[i])

我为每个团队分配了一种颜色:

colors = []
random_color(al, colors)
team_names = al['teamID'].unique()
color_assignment = {team_names[i] : colors[i] for i in range(len(team_names))}

标签: pythonpandasmatplotlib

解决方案


推荐阅读