根据matplotlib中的分类变量更改颜色

时间:2019-10-26 16:54:27

标签: python pandas matplotlib

我有一个数据框,我想根据“ Win”的二进制值1或0来绘制散点图,并将每个点的颜色编码为红色或绿色。到目前为止,我有:

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

但是返回黑白图

2 个答案:

答案 0 :(得分:1)

我知道您的问题是关于matplotlib的,但请看一下seaborn.scatterplothue参数。

您的代码最终将看起来像这样:

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

答案 1 :(得分:0)

根据scatter的文档,您可以使用c参数为数据点提供一系列颜色。您所需要做的就是根据'Win'列中的值定义颜色列表:

color = df['Win'].apply(lambda x: 'red' if x else 'green')
plt.scatter(x, y, c=color)