Skip to content Skip to sidebar Skip to footer

How To Update A Source In A Javascript Callback Of Bokeh In Python?

I am adapting this answer for my case, where I want an interactive, standalone graph where the slider selects which column of the data to plot in a bar chart. (Standalone is crucia

Solution 1:

The issue is in the CustomJS code as you suspected. There are two things that need to be fixed.

  1. Bokeh has deprecated get() and set() methods and replaced them by getv() or setv(). However, the preferred way of accessing or modifying model properties is through usual JavaScript attributes, e.g., source_visible.data.

  2. Bokeh has deprecatedtrigger('change') and replaced it by change.emit().

The fixed CustomJS code:

slider.callback = CustomJS(
    args=dict(source_visible=source_visible,
              source_available=source_available), code="""
        var selected_function = cb_obj.value.toString();
        // Get the data from the data sources
        var data_visible = source_visible.data;
        var data_available = source_available.data;
        // Change bar height to the selected value
        data_visible.top = data_available[selected_function];
        // Update the plot
        source_visible.change.emit();
    """)

JavaScript errors and warnings are seen in the browser's console. Here are instructions for opening the console in different browsers.

Post a Comment for "How To Update A Source In A Javascript Callback Of Bokeh In Python?"