Как изменить цвета линий на основе атрибута в Matplotlib? - PullRequest
1 голос
/ 28 марта 2020

Я везде искал этот ответ - извините, если его уже спросили

Я работаю с Python 3 и пытаюсь соединить точки на точечной диаграмме в зависимости от цвета точки .

Я пытался сделать это:

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

Но я получаю это: enter image description here

Мне бы хотелось, чтобы линии были того же цвета, что и те, что показаны в легенде. Я попытался перебрать циклы данных, чтобы изменить цвета, но это не работает.

Есть ли способ перечислить массив при настройке цветов? Примерно так:

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

Я также пытался сделать исходный график линейным, но, похоже, работает только разброс. Спасибо!

РЕДАКТИРОВАТЬ:

Для первого графика:

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))}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...