我在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
它基本上有设备,日期和阅读。它比我给出的片段大得多。
我正在尝试绘图,最好是使用plotly,因为它是交互式的,允许我缩放等,这是这类数据集的理想选择。
我想在X轴上绘制日期,在Y轴上绘制,并为每个带图例的设备绘制单独的线条(颜色不同)。但是,一切都在一个数据框中,我不想手动添加痕迹,这会因为我的数据集的大小而需要很长时间。
我已经搜索了高低解决方案,似乎没有任何工作。我已经尝试了这个阴谋网站,袖扣,但它看起来相当复杂,并且在网上有很少的信息(对于袖扣)。在R中,我会做类似colour=device
之类的事情来表示我希望不同它按设备排序,但我似乎无法用Python来解决它。
有人可以提醒(记住一切都在一个数据框中)吗?
答案 0 :(得分:0)
我发现使用pd.groupby('Device')
是一种在循环中生成跟踪的非常方便的方法。
import pandas as pd
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode()
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)
您也可以通过预先定义设备的字典来设置所需的颜色:例如。