Bokeh DataTable не обновляет высоту строки с версии 1.0.4 - PullRequest
0 голосов
/ 20 сентября 2019

Я использую таблицу данных Bokeh для отображения кадра данных Pandas, и отображение неверно.По какой-то причине текст ячейки помещается в каждую ячейку.Поведение в v.1.0.4 нормально, но с тех пор оно появляется.

Код:

from bokeh.models import ColumnDataSource
from bokeh.io import output_file, show, save
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn, HTMLTemplateFormatter

example_df = pd.DataFrame.from_dict(data={'x':[0]*6, 
         'y':[0, 1, 0, 1, 0, 1],
         'color':['blue', 'red', 'blue', 'green', 'blue', 'green']})
source = ColumnDataSource(example_df)

template="""
            <p style="font-size:18px;
                color:<%= 
                (function colorfromint(){
                    if (color == 'green')
                        {return('green')}
                    }()) %>;"> 
                <%= value %>
            </p>
         """

formatter =  HTMLTemplateFormatter(template=template)

columns = [
        TableColumn(field="x", formatter=formatter,
                    title='<p style="font-size:160%;"> Field 1 </p>'),
        TableColumn(field="y", formatter=formatter, 
                    title='<p style="font-size:160%;"> Field 2 </p>'),
    ]

data_table = DataTable(source=source, columns=columns, width=1200, height=800, index_position = None)

show(data_table)

Неправильный вывод Table using bokeh v1.0.4

при правильном выходе Behaviour after v1.0.4

1 Ответ

1 голос
/ 20 сентября 2019

Ваш код работает с элементами <p>, замененными элементами <span>.

template="""
<span style="font-size:18px;
    color:<%=
    (function colorfromint(){
        if (color == 'green')
            {return('green')}
        }()) %>;">
    <%= value %>
</span>
"""

formatter =  HTMLTemplateFormatter(template=template)

columns = [
    TableColumn(field="x", formatter=formatter,
                title='<span style="font-size:160%;"> Field 1 </span>'),
    TableColumn(field="y", formatter=formatter,
                title='<span style="font-size:160%;"> Field 2 </span>'),
]

enter image description here

Я не уверен, что лежит в основе изменений стиля, но я бы посчитал <span> лучшим выбором здесьв любом слючае.

...