Я пытаюсь отобразить таблицу в ноутбуке jupyter с использованием python и библиотеки визуализации Bokeh. Я использую следующий код для отображения таблицы в jupyter ноутбук, где результат является dataframe:Столбцы и заголовки столбцов Python Bokeh не выстраиваются в линию
source = ColumnDataSource(result)
columns = [
TableColumn(field="ts", title="Timestamp"),
TableColumn(field="bid_qty", title="Bid Quantity"),
TableColumn(field="bid_prc", title="Bid Price"),
TableColumn(field="ask_prc", title="Ask Price"),
TableColumn(field="ask_qty", title="Ask Quantity"),
]
data_table = DataTable(source=source, columns=columns, fit_columns=True, width=1300, height=800)
show(widgetbox([data_table], sizing_mode = 'scale_both'))
Раньше я использовал vform хотя это сейчас, кажется, не изношено и больше не работает, как ожидалось либо. Это произошло после обновления моей версии ноутбука jupyter. Независимо от того, что я установить ширину моих заголовков столбцов не выстраиваются в линию и имеют странные совпадения с таблицей:
Это не произошло раньше, я был в состоянии получить хороший стол, где все подкладки вверх. Даже если я настраиваю заголовки, они все равно не выстраиваются в линию. Этого не происходит, когда я сохраняю таблицу как html-файл вместо вызова show() непосредственно в ноутбуке Jupyter. Что мне нужно изменить? Есть лучший способ сделать это?
Полный пример
from bokeh.io import show, output_notebook
from bokeh.layouts import widgetbox
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import TableColumn, DataTable
import pandas as pd
output_notebook()
d = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
source = ColumnDataSource(df)
columns = [
TableColumn(field="one", title="One"),
TableColumn(field="two", title=" Two"),
]
data_table = DataTable(source=source, columns=columns,
fit_columns=True, width=800, height=800)
show(widgetbox([data_table], sizing_mode = 'scale_both'))
Это работает на системе со следующими версиями:
- Jupyter 4.2.0
- Python 2.7.12 (АНАКОНДА 2.3.0 64 бит)
- Bokeh 0.12.2
, что о ширине не выстраивались? – klib
Это труднее исправить, поскольку ширины заголовков и строк заданы по-разному в условиях css. Можно использовать '.bk-root .bk-slick-header-column.bk-ui-state-default: first-child { width: 40px! Important; } ' , но только первый столбец будет выровнен – jackdaw