2016-11-16 8 views
1

こんにちは私はBokehを使用してtimeseriesチャートを作成しようとしています。 私が見ているデータは、現時点で有効なタイムスタンプ、値、および値を提供したセンサーの2列1列です。Bokehのタイムスチャート

時間|値|センサー

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 | C

私は をボケに対して完全に新しいですし、私はどのように私は独立して、チャート上の各センサのデータをレンダリングするユーザーボケ、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