2016-11-16 66 views
1

嗨我想创建一个时间序列图使用散景。 我看起来像这样的数据,2列一个是时间戳,它实际上是当前时间,值和提供该值的传感器时间序列图与散景

时间|值|传感器

2011-05-03 17:45:35.177000 | 213.130005 | A

2011-05-03 17:45:36.177000 | 208.83 | B

2011-05-03 17:45:36.277000 | 212.629993 | C

2011-05-03 17:45:45.317000 | 211.719999 | A

2011-05-03 17:45:45.577000 | 203.549999 | B

2011-05-03 17:45:48.177000 | 201.199999 | B

2011-05-03 17:45:55.175000 | 199.439999 | ç

我完全新的背景虚化 ,我不知道我怎么可以将用户的背景虚化来渲染每个传感器的数据独立地在图表上,沿东西this

  • 做线我需要熊猫,如示例中所示?
  • 我如何使用熊猫来解析时间戳列,从例子中,我只看到pandas.parse_dates

回答

1

1)你不使用熊猫,但是这条路线使得它更容易。
2)您可以只用大熊猫to_datetime()功能(pandas docs reference

from bokeh.plotting import figure, show 
from bokeh.models import DatetimeTickFormatter 
import pandas as pd 
import csv 

d = pd.read_csv("SO.txt", delimiter="|") 
# Strip whitespace from spacing in column headers 
d.columns = [val.strip() for val in d.columns.values] 
d["Time"] = pd.to_datetime(d["Time"], yearfirst=True) 

unique_sensors = d["Sensor"].unique() 
c = ["red","blue","green"] 

fig = figure(x_axis_label="Time (Seconds)", y_axis_label="Value", title="Sample") 

# Draw a line for each unique sensor value 
for i, s in enumerate(unique_sensors): 
    sdf = d.loc[d["Sensor"]==s] 
    fig.line(x=sdf["Time"], y=sdf["Value"], legend=s, line_color=c[i], line_width=3.0) 
fig.xaxis.formatter = DatetimeTickFormatter(hours=["%b %d %Y"], 
              days=["%b %d %Y"], 
              months=["%b %d %Y"], 
              years=["%b %d %Y"]) 
show(fig) 

解析时间功能,但显然,你需要你的彩色地图缩放到您的问题,所以我建议看在背景虚化调色板(bokeh docs reference