我正在尝试弄清楚如何绘制数据框列,其中线条的颜色根据其值而变化,但我对如何引用这些值感到困惑。
例如,我有这个数据框:
Timestamp Value
-------------------------
0 5:00 4
1 5:01 5
2 5:02 8
3 5:03 12
4 5:04 13
5 5:05 2
...
我简单地运行某种形式:
df.plot(x="Timestamp", y=["Value"], figsize=(9, 8))
获取值随时间变化的图。
现在,我将我的值分为不同的类别/箱,其中:0-5 =“低”,6-15 =“中”和16+ =“高”。我想要相同的图,但现在曲线上与“低”相对应的所有值都为蓝色,与“中”相对应的为绿色,与“高”相对应的为红色。因此,我将看到绘制的一条曲线,由“值”列组成,但根据值分段为不同的颜色。我怎样才能在Python中完成这个?我对如何设置索引/键以将值转换为颜色以及 .plot() 中需要什么参数才能真正具有基于值的颜色感到困惑。
鉴于此:
索引 | 时间戳 | 价值 |
---|---|---|
0 | 5:00 | 3 |
1 | 5:01 | 4 |
2 | 5:02 | 5 |
3 | 5:03 | 13 |
4 | 5:04 | 14 |
5 | 5:05 | 15 |
6 | 5:06 | 17 |
7 | 5:07 | 18 |
8 | 5:08 | 19 |
然后:
x = df.Timestamp
y = df.Value
for x1,x2, y1,y2 in zip(x, x[1:], y, y[1:]):
if (0<=y1) & (y1<=5):
plt.plot([x1, x2], [y1, y2], 'b')
elif (6<=y1) & (y1<=15):
plt.plot([x1, x2], [y1, y2], 'g')
else:
plt.plot([x1, x2], [y1, y2], 'r')
plt.show()
输出: