Изменение цвета на основе категориальной переменной в matplotlib - PullRequest
1 голос
/ 26 октября 2019

У меня есть фрейм данных, из которого я хочу создать точечную диаграмму и код цвета для каждой точки красного или зеленого цвета на основе двоичного значения «Win», которое равно 1 или 0. Пока у меня есть:

plt.title('Scatter plot')
plt.xlabel('blocked shots')
plt.ylabel('goals against')
plt.show()

но это возвращает черно-белый график

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Я знаю, что ваш вопрос касается matplotlib, но посмотрите на 1003 * hue параметр.

Ваш код в конечном итоге будет выглядеть примерно так:

sns.scatterplot(x='blocked_column', y='goals_column', data=df, hue='Win')

0 голосов
/ 26 октября 2019

Согласно документам scatter, вы можете использовать аргумент c, чтобы указать последовательность цветов для точек данных. Все, что вам нужно, это определить список цветов в зависимости от значения в вашем столбце 'Win':

color = df['Win'].apply(lambda x: 'red' if x else 'green')
plt.scatter(x, y, c=color)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...