Bokeh datatable столбцы переупорядочения - PullRequest
0 голосов
/ 10 октября 2019

Когда я читаю документацию Bokeh для datatable, опция переупорядочения, кажется, указывает на возможность переупорядочения перетаскиванием.

”Позволяет переупорядочивать столбцы таблицы. Чтобы изменить порядок столбцов, щелкните и перетащите заголовок таблицы в нужное место в таблице. Столбцы с обеих сторон останутся в прежнем порядке. ”

Я не могу заставить это работать. Код ниже. Кто-нибудь знает, как это работает?

import numpy as np
import pandas as pd

from bokeh.io import curdoc
from bokeh.layouts import column, widgetbox
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import DataTable, TableColumn

df = pd.DataFrame(columns=['x1', 'x2'])
n=10
np.random.seed(0)
df['x1'] = np.random.rand(n)
df['x2'] = np.random.rand(n)

source = ColumnDataSource(df)
columns=[TableColumn(field=Ci, title=Ci) for Ci in df.columns]
data_table = DataTable(source=source, columns=columns, name="table", sizing_mode="scale_both", reorderable=True, sortable=True, fit_columns=True)
l1 = widgetbox([data_table])

curdoc().add_root(l1)

1 Ответ

0 голосов
/ 11 октября 2019

Я не уверен, насколько хорошо это задокументировано, но если вы посмотрите на консоль JS браузера, вы увидите причину, по которой:

[bokeh] - "jquery-ui требуется дляenable DataTable.reorderable "document.js: 1

Мы автоматически не включаем jq-ui, потому что нет способа оправдать такое раздувание пакета только для этой крошечной функции. (Который, очевидно, почти никто не пытается использовать, это первый вопрос об этом через ~ 6 лет).

Итак, вам нужно будет создать шаблон для вашего приложения Bokeh и явно загрузить jquery и jquery-ui в шаблон. Примерно так:

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" media="all" /> 
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js" type="text/javascript"></script>

Пример использования шаблона для приложения Bokeh вы можете увидеть в примере gapminder .

...