悬停工具-列名中带有空格的数据框在悬停中不起作用吗?

时间:2018-10-04 23:38:41

标签: holoviews

我注意到,如果我尝试在Holoviews绘图中使用悬停工具,则在工具提示中无法使用带有空格的列名。在Bokeh中,只要在创建悬停对象时将列名用大括号括起来,就可以使用空格。但这似乎在Holoviews中不起作用。在下面的示例中,col2和col3值正确显示在悬停工具提示中,但col 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

我是否缺少某些内容?还是必须重命名所有列名才能删除空格?

2 个答案:

答案 0 :(得分:0)

HoloViews在内部转义带有空格的列。如果将列引用更改为@{col_1},则它应该起作用:

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

答案 1 :(得分:0)

我正在将项目动态传递到分组的vbar图表。并发现我不得不使用下面的解决方案……诚然有点黑

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

hover = HoverTool(tooltips=tooltips)