Я взял приведенный ниже код из другого источника - это не мой собственный код.
Код позволяет вам выбрать ячейку в таблице данных, и данные для загрузки для этой ячейки будутграфик, основанный на строке выбранной ячейки.
Как расширить этот код таким образом, чтобы, если у меня было несколько переменных (например, «downloads» и «uploads») и т. Д. Больше столбцов в таблице данных, я мог отображать данные на основе этой ячейки (гдестрока И столбец важны)?В качестве альтернативы, как я могу определить в качестве переменной номер столбца выбранной ячейки (таким же образом selected_row ниже может использоваться для определения номера строки)?
from datetime import date
from random import randint
from bokeh.models import ColumnDataSource, Column
from bokeh.plotting import figure, curdoc
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn, Div
import numpy as np
data = dict(dates = [date(2014, 3, i + 1) for i in range(10)],
downloads = [randint(0, 100) for i in range(10)])
d_source = ColumnDataSource(data)
columns = [TableColumn(field = "dates", title = "Date", formatter = DateFormatter()),
TableColumn(field = "downloads", title = "Downloads")]
data_table = DataTable(source = d_source, columns = columns, width = 400, height = 280)
def table_select_callback(attr, old, new):
selected_row = new[0]
download_count = data['downloads'][selected_row]
chart_data = np.random.uniform(0, 100, size = download_count)
p = figure(title = 'bla')
r = p.line(x = range(len(chart_data)), y = chart_data)
root_layout.children[1] = p
d_source.selected.on_change('indices', table_select_callback)
root_layout = Column(data_table, Div(text = 'Select Date'))
curdoc().add_root(root_layout)