Боке несоответствие фильтрации данных

Этот вопрос задан в другом потоке, и это лучший ответ IMO:

export LOG_FILE_PATH=/expanded/path/of/the/log/file/../logfile.log'
cat Text_File.msh | envsubst > Text_File_expanded.msh

, если на Mac установите сначала gettext: brew install gettext

см.: Принудительное bash для расширения переменных в строке, загруженной из файла

0
задан Qonl 10 March 2019 в 15:14
поделиться

1 ответ

Правильный способ обновления данных таблицы в вашем обратном вызове JS заключается в следующем:

var data = {};
//build your data here
source.data = data;

Где source - это Bokeh ColumnDataSource вашей DataTable. Вам не нужно использовать:

source.change.emit();

Вы делаете это только тогда, когда заменяете только часть своих данных, например, один столбец таблицы. И если data_table является вашим объектом Bokeh DataTable, пропустите также:

target_obj.change.emit();

Дата таблицы обновляется автоматически при обновлении ее ColumnDataSource. Смотрите этот простой пример:

from bokeh.io import show
from bokeh.layouts import widgetbox
from bokeh.models import ColumnDataSource, Slider, DataTable, TableColumn, CustomJS

source = ColumnDataSource(dict(x = list(range(6)), y = [x ** 2 for x in range(6)]))
columns = [TableColumn(field = "x", title = "x"), TableColumn(field = "y", title = "x**2")]
table = DataTable(source = source, columns = columns, width = 320)
slider = Slider(start = 1, end = 20, value = 6, step = 1, title = "i", width = 300)
callback_code = """ i = slider.value;
                    new_data = {"x": [1, 2, 3, 4, 5], "y": [1, 4, 9, 16, 25]}
                    table.source.data = new_data
                    table.width = 320 + i * 25;  """
callback = CustomJS(args = dict(slider = slider, table = table), code = callback_code)
slider.js_on_change('value', callback)
show(widgetbox(slider, table))
0
ответ дан Tony 10 March 2019 в 15:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: