用 Plotly 绘制不同的组

2024-03-24

我有一个 python 数据框,看起来有点像这样:

Device   Date      Reading
Device1  1/02/17   100.33
Device1  2/02/17   300.23
Device1  3/02/17   99.00
Device2  1/02/17   11.24
Device2  2/02/17   654.00
Device2  3/02/17   4543.4
Device3  1/02/17   3243.5
Device3  2/02/17   545.43
Device3  3/02/17   4545.0

它基本上有设备、日期和读数。它比我给出的片段大得多。

我正在尝试绘图,最好使用绘图,因为它是交互式的并且允许我缩放等,这对于此类数据集来说是理想的。

我想在 X 轴上绘制日期,在 Y 轴上读取数据,并为每个带有图例的设备绘制单独的线条(颜色不同)。然而,所有内容都在一个数据框中,我不想手动添加跟踪,由于数据集的大小,这将花费很长时间。

我到处寻找解决方案,但似乎没有任何效果。我已经尝试过阴谋网站袖扣,但它似乎相当复杂,并且在线信息很少(针对袖扣)。在 R 中,我会做类似的事情colour=device表示我希望按设备对它进行排序,但我似乎无法在 Python 中解决它。

有人可以建议吗(记住所有内容都在一个数据框中)?


我发现使用pd.groupby方法是在循环中生成跟踪的一种非常方便的方法。

import pandas as pd
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode

init_notebook_mode()

# Copy OP's example and load from clipboard
df = pd.read_clipboard()

grouped = df.groupby('Device')
data = [go.Trace(dict(x=values['Date'], y=values['Reading'], name=key,
                       mode='line')) for key, values in grouped]
iplot(data)

您还可以通过预先定义 device: color 的字典来设置您想要的颜色。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 Plotly 绘制不同的组 的相关文章

随机推荐