слайдер не реагирует - PullRequest
       14

слайдер не реагирует

0 голосов
/ 12 июня 2019

Я хочу использовать ползунок, чтобы изменить цифры, но это бесполезно.Я думаю, возможно, проблема в части обратного вызова.но я понятия не имею, как это сделать.

month = [1,2,3,1,2,3,1,2,3,1,2,3]
tilts = [1,1,1,2,2,2,3,3,3,4,4,4]
data = [0.1,0.2,0.3,1,2,3,11,12,13,21,22,24]
df = pd.DataFrame({'month':month,'tilt':tilts,'data'=data})

df_default = df[df['tilt']==1]

source = ColumnDataSource({
    'x': df_default.month.tolist(), 
    'y': df_default.data.tolist(), 
})

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

plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)

callback = CustomJS(args=dict(source=source), code="""
    var data = source.data;
    var tilt = slider.value;
    var x = data['x']
    var y = data['y']
    'x'        = df[df['tilt']==tilt].month.tolist();
    'y'        = df[df['tilt']==tilt].data;
    plot.line(x='x', y='y', source=source, line_width=3, 
line_alpha=0.6, 
         );
    source.change.emit();
""")

slider = Slider(start=1, end=4, step=1, value=1, title='tilt')
slider.js_on_change('value',callback)

layout = row(
    plot,
    column(slider)
)

output_file("slider.html", title="slider.py example")

show(layout)

это может показать, но, по-видимому, обратный вызов не работает

1 Ответ

0 голосов
/ 12 июня 2019

Есть несколько проблем с этим кодом, одна из них состоит в том, что эти строки бессмысленны:

'x'        = df[df['tilt']==tilt].month.tolist();
'y'        = df[df['tilt']==tilt].data;

Они пытаются присвоить значения строковым константам, что является недопустимым JavaScript.Однако большая проблема заключается в том, что вы пытаетесь использовать Pandas DataFrames в CustomJS обратном вызове, и это никогда не сработает.Pandas DataFrames - это объект Python, они не существуют внутри браузеров.Чтобы запустить настоящий код Python, например, использовать Pandas DataFrames, вам нужно создать и запустить приложение Bokeh Server .

...