基于pandas列值的彩色时间序列

2024-10-01 00:16:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pandas数据帧中有一个时间序列(在示例中是df.data),并且希望根据另一列的值(在示例中是df.colors)来为绘图着色;在本例中,值是0、1和2,但是如果它也能与floats一起工作,那么它将是一个更好的/更可移植的。在

import pandas as pd
n = 10
seed(1)
df = pd.DataFrame(data={"data":randn(n), "colors":randint(0,3,n)},
                  index=pd.date_range(start="2016-01-01", periods=n))

df.data.plot(style=".", ms=10)

Uncolored time-series plot

我要找的是

^{pr2}$

(这不起作用),为了产生这样的情节:

Colored time-series plot

这里的标记是红色、橙色和绿色,分别代表colors==01,和{}。对于很少的数据和颜色,手动执行此操作相对容易,但是有没有一种直接的方法可以自动执行此操作?在

{{{7}在使用cd7}的索引时,似乎可以使用cd7}自动缩放。有没有办法用这个符号?在


Tags: 数据import绘图示例pandasdfdata时间
1条回答
网友
1楼 · 发布于 2024-10-01 00:16:11

实现这一点的一种方法是使用^{}并创建一个嵌套的dictionary来为要映射的int/float值指定颜色值。在

plt.style.use('seaborn-white')
df.replace({'colors':{0:'red',1:'orange',2:'green'}}, inplace=True)

然后,您可以对其执行^{},以在每个迭代步骤中保持groupby对象的每个子组的颜色相同。在

^{pr2}$

Image

相关问题 更多 >