我有一个数据框如下所示:
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])
我想将其绘制为散点图,颜色为“1”,颜色为蓝色,“0”为颜色红色。
因为索引(时间序列)很长,我认为最好不要使用for循环。有没有人有这个想法?提前谢谢!
答案 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)
鉴于样本数据,这看起来像
对于两个箱图,请考虑使用seaborn.boxplot
:
import seaborn as sns
sns.boxplot(x="boolvalue", y="index", data=df.reset_index())