Боке: диаграмма из кадра данных pandas не будет обновляться при запуске

У меня есть кадр данных pandas, столбцы которого я хочу показать в виде линий на графике с использованием сервера Bokeh. Кроме того, я хотел бы иметь ползунок для смещения одной из строк относительно другой.

Моя проблема заключается в функции обновления при изменении значения ползунка. Пробовал код из ползунков-пример боке, но не работает.

Вот пример

import pandas as pd
from bokeh.io import vform
from bokeh.plotting import Figure, output_file, show
from bokeh.models import CustomJS, ColumnDataSource, Slider

df = pd.DataFrame([[1,2,3],[3,4,5]])
df = df.transpose()
myindex = list(df.index.values)
mysource = ColumnDataSource(df)

plot = Figure(plot_width=400, plot_height=400)

for i in range(len(mysource.column_names) - 1):
    name = mysource.column_names[i]    
    plot.line(x = myindex, y = str(name), source = mysource)

offset = Slider(title="offset", value=0.0, start=-1.0, end=1.0, step=1)

def update_data(attrname, old, new):
    # Get the current slider values
    a = offset.value

    temp = df[1].shift(a)
    #to finish#

offset.on_change('value', update_data)

layout = vform(offset, plot)

show(layout)

Внутри функции update_data мне нужно обновить mysource, но я не могу понять, как это сделать. Может ли кто-нибудь указать мне в правильном направлении?


person RaJa    schedule 08.04.2016    source источник


Ответы (1)


Попробуйте... измените a=offset.value на a=cb_obj.get('value')

Затем поместите source.trigger('change') после того, как вы сделаете то, что пытаетесь сделать в этой функции update_data вместо offset.on_change('value', update_data).

Также измените offset = Slider(title="offset", value=0.0, start=-1.0, end=1.0, step=1, callback=CustomJS.from_py_func(offset))

Обратите внимание, что этот формат, который я использую, работает с установленным flexx. https://github.com/zoofio/flexx, если у вас есть Python 3.5, вам нужно загрузить zip, извлеките и введите python setup.py install, так как он еще не опубликован для этой версии...

person Matt    schedule 02.05.2016