Как раскрасить заданные значения c точек на графике на основе значения столбца в Pandas Датафрейме - PullRequest
0 голосов
/ 11 апреля 2020

Допустим, у меня есть следующий набор данных:

d = {'Team': ['Duke', 'LSU'], 'Wins': [20, 18], 'Losses' : [5, 7], 'Conference' : ['ACC', 'SEC']}
df = pd.DataFrame(data=d)
df

    Team    Wins   Losses   Conference
0   Duke     20      5          ACC
1   LSU      18      7          SEC

Затем я делаю из него диаграмму рассеяния

plt.plot(d['Losses'], d['Wins'], 'o')

Я хотел бы раскрасить свой график рассеяния по Конференции. В частности, я бы хотел, чтобы команды SE C окрашивались только в красный цвет, тогда как для всех остальных точек данных по умолчанию используется синий цвет. Кроме того, как бы я go о раскраске просто Герцог красный, в то время как все остальные точки данных синие? В моем наборе данных около 200 команд. Как бы я go об этом? Спасибо!

1 Ответ

2 голосов
/ 11 апреля 2020

IIU C вы можете попробовать

import pandas as pd
import numpy as np

d = {'Team': ['Duke', 'LSU'], 
     'Wins': [20, 18], 
     'Losses' : [5, 7], 
     'Conference' : ['ACC', 'SEC']}
df = pd.DataFrame(data=d)

df["color"] = np.where(df["Conference"]=="SEC", "red", "blue")

df.plot(x='Losses', y='Wins', kind="scatter", color=df["color"]);

Если вы хотите использовать ту же логику c для Duke, вам просто нужно изменить строку на np.where соответственно.

Обновление Для этого конкретного случая, я думаю, вы должны взглянуть на plotly

import plotly.express as px
px.scatter(df,x="Losses", y="Wins", color="Conference", hover_name="Team")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...