☰Read-only archive⌕
Looking for help with Bokeh?

This is a read-only archive. Ask questions and join the conversation on GitHub.

Visit Community Support on GitHub →
Archived discussions · Captured October 28, 2026

Reset DataTable selection

Community Supportdatatable
b-fontana
b-fontana

As described here, there seems to be no mechanism to remove a selection in a DataTable object. Example follows:

import pandas as pd
from bokeh.io import output_file, save
from bokeh.layouts import layout
from bokeh import models as bmd
from bokeh.plotting import figure

def create_bokeh_datatable(src, width, height):
    col_names = {'u': 'U',
                 'v': 'V'}

    template="""<b><div><%= (value).toFixed(0) %></div></b>"""
    f = bmd.HTMLTemplateFormatter(template=template)
    cols = [bmd.TableColumn(field=x, title=col_names[x], formatter=f)
            for x in ['u', 'v']]
    table_opt = dict(width=width, height=int(0.7*height), source=src)
    table = bmd.DataTable(columns=cols, **table_opt)
    return table
            
def plot(df):
    width, height = 600, 600

    source = bmd.ColumnDataSource(df)
    arru = source.data['u']
    arrv = source.data['v']

    hover_opt = dict(hover_fill_color='black', hover_line_color='black',
                     hover_line_width=4, hover_alpha=0.2)
    hvr_tt = [('u,v', '@u,@v')]
    p = figure(width=width, height=height, tools='pan,save,reset')

    r = p.rect(x='u', y='v', source=source,
               width=1., height=1.,
               width_units='data', height_units='data',
               fill_color='red', line_color='black', line_width=3,
               **hover_opt)
    p.text(arru, arrv,
           text=['u,v={},{}\n'.format(u,v) for (u, v) in zip(arru, arrv)],
           text_baseline='middle', text_align='center',
           text_font_size='16pt')

    p.add_tools(bmd.HoverTool(tooltips=hvr_tt, renderers=[r]))

    table = create_bokeh_datatable(source, width, height)
    
    lay = layout([[p, table]])

    output_file('tmp.html')
    save(lay)


df = pd.DataFrame({'u': [1,2,3,3], 'v': [2,3,3,4]})
plot(df)

Once the user clicks on a table entry, the only way to revert to the previous state is to click on the “Reset” button in the figure. Is there any way to do the same directly in the table?

⌁   Link to post

End of archived discussion · Replies are disabled