在python中以不同颜色绘制bool-int散点图

时间:2018-04-21 16:26:02

标签: python pandas plot

我有一个数据框如下所示:

df =
       index           boolvalue  
2014-05-21 10:00:00            1        
2014-05-21 11:00:00            1        
2014-05-21 12:00:00            0      
2014-05-21 13:00:00            1        
2014-05-21 14:00:00            0        
2014-05-21 15:00:00            1 
....

该列只有两个值,“1”和“0”。

这是我做过的原始代码和图:

plt.scatter(df.index, df.boolvalue, s = 5,c='b' )
plt.ylim([-2, 2])

enter image description here

我想将其绘制为散点图,颜色为“1”,颜色为蓝色,“0”为颜色红色

因为索引(时间序列)很长,我认为最好不要使用for循环。有没有人有这个想法?提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以考虑是否需要散点图或两个箱图。

对于散点图,您可以使用

for (v, c) in [(1, 'b'), (0, 'r')]:
    plt.scatter(df.index[df.boolvalue == v], df.boolvalue[df.boolvalue == v], s = 5,c=c)

鉴于样本数据,这看起来像

enter image description here

对于两个箱图,请考虑使用seaborn.boxplot

import seaborn as sns
sns.boxplot(x="boolvalue", y="index", data=df.reset_index())