Я новичок в Bokeh и использую Custom JS для определения обратных вызовов. Я написал код для внесения изменений в ползунки в зависимости от значения других ползунков. Теперь я хочу изменить изображение, отображаемое при изменении значения одного из ползунков. Однако, когда я запускаю этот обратный вызов, изображение не отображается и в консоли графика bokeh я увидел, что bokeh ищет какой-то файл во временных файлах.
p = figure(title = 'foo', tools = 'pan, save, wheel_zoom,reset,crosshair', x_range = [0,10], y_range = [0,10])
slider1 = Slider(start=0, end=15, value=4,step=.1, title="Delta P")
slider2 = Slider(start=1400, end = 1800, value=1500, step = 10, title = "Mass Flow")
newdelta = 4
newflow = 1500
newCV = CV(4+newdelta, 4, 1.3,225.41, 0.9, newflow, 27.3,968) # CV is a function within my code elsewhere
source = ColumnDataSource(data=dict(url=['C:\\Users\\XXX\\test_sample.jpg']))
slider3 = Slider(start=-100, end = 2000, value=newCV, step = 1, title = "CV")
slider3.callback = CustomJS(args=dict(slider3=slider3, source=source), code="""
if (slider3.value < 0){
source.data.url= "C:\\\\Users\\\\XXX\\\\new_sample.jpg";
console.log(source.data['url']);
};
source.change.emit();
""")
p.image_url('url', source=source, x=2, y=8, w=6, h=6)
slider1.callback = CustomJS(args=dict(slider1=slider1,slider2=slider2,slider3=slider3), code="""
slider3.value= slider1.value + slider2.value;
""")
slider2.callback = CustomJS(args=dict(slider1=slider1,slider2=slider2,slider3=slider3), code="""
slider3.value= slider1.value + slider2.value;
""")
show(row(column(slider1, slider2,slider3),p))
Я не получаю любые ошибки в python, но когда код запускается, и я изменяю значение slider3 на значение меньше 0, консоль изменяет значение source.data.url на новое изображение, но изображение не загружается. Вот ошибка:
C:1 GET file:///C:/Users/XXX/AppData/Local/Temp/C net::ERR_FILE_NOT_FOUND
Image (async)
e @ bokeh-1.0.4.min.js:31
t._set_data @ bokeh-1.0.4.min.js:31
t.set_data @ bokeh-1.0.4.min.js:31
t.set_data @ bokeh-1.0.4.min.js:31
(anonymous) @ bokeh-1.0.4.min.js:31
t.emit @ bokeh-1.0.4.min.js:31
e.emit @ bokeh-1.0.4.min.js:31
c._setv @ bokeh-1.0.4.min.js:31
c.setv @ bokeh-1.0.4.min.js:31
set @ bokeh-1.0.4.min.js:31
t.compute_indices @ bokeh-1.0.4.min.js:31
(anonymous) @ bokeh-1.0.4.min.js:31
t.emit @ bokeh-1.0.4.min.js:31
e.emit @ bokeh-1.0.4.min.js:31
eval @ VM29:10
t.execute @ bokeh-1.0.4.min.js:31
t @ bokeh-widgets-1.0.4.min.js:31
(anonymous) @ bokeh-1.0.4.min.js:31
t._slide @ bokeh-widgets-1.0.4.min.js:31
(anonymous) @ bokeh-widgets-1.0.4.min.js:31
(anonymous) @ bokeh-widgets-1.0.4.min.js:32
(anonymous) @ bokeh-widgets-1.0.4.min.js:32
R @ bokeh-widgets-1.0.4.min.js:32
(anonymous) @ bokeh-widgets-1.0.4.min.js:32
T @ bokeh-widgets-1.0.4.min.js:32
O @ bokeh-widgets-1.0.4.min.js:32
e @ bokeh-widgets-1.0.4.min.js:32
Может кто-нибудь помочь мне понять, что идет не так и как это можно исправить?