Инструмент наведения - фреймы данных с пробелами в именах столбцов не работают при наведении?

Я заметил, что если я пытаюсь использовать инструмент наведения на графике Holoviews, имена столбцов с пробелами в них не работают во всплывающей подсказке. В Bokeh вам разрешено использовать пробелы, если вы заключаете имена столбцов в фигурные скобки при создании объекта наведения. Но, похоже, это не работает в Holoviews. В приведенном ниже примере значения col2 и col3 правильно отображаются во всплывающей подсказке, но столбец 1 отображается как ????

df = pd.DataFrame({'col 1': [1, 2, 3, 4, 5], 'col2': [2, 5, 8, 2, 7], 'col3': ['A', 'b', 'C', 'd', 'E']})
df

hover = HoverTool(tooltips=[
    ("index", "$index"),
    ("col 1", "@{col 1}{0.0}"),
    ("col2", "@col2"),
    ("col3", "@col3"),
])

bars = hv.Bars(df, kdims=["col 1"], vdims=['col2',col3']).opts(plot=dict(tools=[hover]))
bars

Мне что-то не хватает или мне нужно переименовать все имена столбцов, чтобы удалить пробелы?


person pongo30    schedule 04.10.2018    source источник


Ответы (2)


HoloViews внутренне экранирует столбцы с пробелами в них. Если вы измените ссылку на столбец на @{col_1}, она должна работать:

hover = HoverTool(tooltips=[
    ("index", "$index"),
    ("col 1", "@{col_1}{0.0}"),
    ("col2", "@col2"),
    ("col3", "@col3"),
])
person philippjfr    schedule 04.10.2018
comment
Спасибо. Как насчет других специальных символов, таких как () или%? У меня есть столбец с именем change% ... - person pongo30; 06.10.2018
comment
Размеры экранированы символом hv.core.util.dimension_sanitizer, который применяет ряд изменений. - person philippjfr; 08.10.2018

Я передаю элементы динамически в сгруппированную диаграмму vbar. И обнаружил, что мне пришлось использовать приведенное ниже решение ... по общему признанию, несколько хакерское

tooltips = []
for item in items:
    ...some code
    tooltips.append((item, '@{' + item + '}'))

hover = HoverTool(tooltips=tooltips)
person Ryan Skene    schedule 05.04.2020