我有一个 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(使用前将#替换为@)