2015-06-30 4 views
1

Редактировать: Все мои проблемы были вызваны наличием двоеточий в пределах значений моей категории. По-видимому, вы не можете иметь двоеточие в своих значениях x/y!TimeSeries как поле с боке

Я пытаюсь сделать участок коробки, который покажет здоровье некоторых датчиков.

1 = хорошо -= плохо

оси х: датчик ID оси у: метка времени

Я использую Python & бок, и я хотел бы, чтобы результат выглядеть примерно так: http://bokeh.pydata.org/en/latest/docs/gallery/unemployment.html

Но в моем случае ось х - это метка времени, а не месяц.

Как настроить мой ColumnDataSource для этих данных, чтобы он имел временной ряд в виде оси X и показывал все значения 1 как зеленые, а 0 - как красный?

Редактировать: Используя код с первого предложения, сюжет все еще ничего не показывает.

source = ColumnDataSource(data=dict(sensor=sensor, timestamp=timestamp, 
            color=color, status=status))  
p = figure() 
p.rect("timestamp", "sensor", 1, 1, source=source, color="color", line_color=None) 

Редактировать 2: судя по всему, вы должны указать x_range и y_range на рисунке() объекта или еще ничего не сюжет.

Продолжающаяся проблема заключается в получении сюжета для отображения объектов datetime, которые я не уверен, что боке может справиться. Все работает отлично, если моя ось x состоит из строки, но не тогда, когда они являются datetime/timestamps.

+0

просто конвертировать ваши временные метки в строку затем :) – maxymoo

ответ

1

Я предполагаю, что ваши данные в кадре данных формы:

timestamp sensor1 sensor2 
t1  1  0 
t2  0  1 

Затем модифицирования соответствующий фрагмент кода из этого примера, вы могли бы сделать это

timestamp = list(data['timestamp']) 
sensor = ['sensor1','sensor2'] 
colors = ["red", "green"] 

# Set up the data for plotting. We will need to have values for every 
# pair of year/month names. Map the rate to a color. 
sensor= [] 
timestamp= [] 
color = [] 
status = [] 
for y in timestamp: 
    for m in sensor: 
     sensor.append(m) 
     timestamp.append(y) 
     sensor_status = data[m][y] 
     status.append(sensor_status) 
     color.append(colors[sensor_status]) 

source = ColumnDataSource(
    data=dict(sensor=sensor, timestamp=timestamp, color=color, status=status) 
) 
+0

Спасибо, что нашли время ответить. К сожалению, ваше решение не сработало, иначе я не буду делать заговор правильно (я отредактировал свой вопрос, чтобы задуматься) – pan0ramic

Смежные вопросы