2016-11-16 8 views
1

Hallo ich versuche, ein Zeitreihen-Diagramm mit Bokeh zu erstellen. Die Daten, die ich habe, sieht so aus, 2 Spalten eine für den Zeitstempel, die effektiv die aktuelle Zeit ist, der Wert und der Sensor, der den WertZeitreihen Charts mit Bokeh

Time | Wert | Sensor

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

Ich bin völlig neu Bokeh und ich bin nicht sicher, wie ich kann Benutzer bokeh die Daten für jeden der Sensoren unabhängig auf einem Diagramm, etwas entlang der Linien von this

  • Do zu machen Ich brauche Pandas wie im Beispiel gezeigt?
  • Wie kann ich Pandas verwenden, um die Timestamp-Spalte, aus dem Beispiel analysieren kann ich pandas.parse_dates sehen nur

Antwort

1

1) Sie müssen nicht Pandas zu verwenden, aber dieser Weg macht es viel einfacher .
2) können Sie analysieren die Zeit Funktion durch nur mit Pandas' to_datetime() Funktion (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) 

Aber natürlich werden Sie Ihre Farbkarte benötigen, um Ihr Problem zu skalieren, so würde ich auf Bokeh vorschlagen, Blick Paletten (bokeh docs reference)