对pandas数据帧的散点图进行颜色编码或标记?

时间:2016-10-24 23:59:27

标签: python pandas matplotlib plot dataframe

我有一个数据框,我正在用熊猫绘图:

import pandas as pd
df = pd.read_csv('Test.csv')
df.plot.scatter(x='x',y='y')

数据框有3列

    x   y result
 0  2   5  Good 
 1  3   2    Bad
 2  4   1    Bad
 3  1   1  Good 
 4  2  23    Bad
 5  1  34  Good

我想格式化散点图,如果df ['result'] ='Good',每个点都是绿色,如果df ['result'] ='Bad',则为红色。

可以使用pd.plot做到这一点,还是有办法使用pyplot?

2 个答案:

答案 0 :(得分:3)

一种方法是在同一轴上绘制两次。首先我们只绘制“好”点,然后我们只绘制“坏”。诀窍是将ax关键字用于scatter方法,如下:

ax = df[df.result == 'Good'].plot.scatter('x', 'y', color='green')
df[df.result == 'Bad'].plot.scatter('x', 'y', ax=ax, color='red')

scatter plot

答案 1 :(得分:3)

df.plot.scatter('x', 'y', c=df.result.map(dict(Good='green', Bad='red')))

enter image description here