我有一个数据框,如下所示:
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循环。有人有想法去做吗?提前致谢!
最佳答案
您可能会考虑是否想要一个散点图或两个箱线图。
对于散点图,您可以使用
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())
关于python - 在python中以不同颜色绘制bool-int散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49957840/