首页 > 解决方案 > HoloViews DynamicMap 悬停工具不会随所选变量更新

问题描述

我正在学习带有 Bokeh 后端的 HoloViews,并正在对 pandas DataFrame 的所选列进行 iPython/Jupyter 显示(实际上它是一个 xarray 数据集,但使用 DataFrame 显示问题更简单)。问题是,当我选择除第一列/变量以外的任何列/变量时,悬停工具提示仍显示第一列/变量的值。我的代码大致基于HoloViews 仪表板文档

import holoviews as hv
import pandas as pd
import numpy as np
hv.extension('bokeh')

df = pd.DataFrame()
df['time'] = pd.date_range('2018-01-01', '2018-01-31')
df['var1'] = np.linspace(0, 1, len(df['time']))
df['var2'] = np.ones(df['var1'].shape)

def load_symbol(var):
    return hv.Curve(df, ('time', 'Time'), var)

variables = ['var1', 'var2']
dmap = hv.DynamicMap(load_symbol, kdims='Variable').redim.values(Variable=variables)

dmap.opts(framewise=True, tools=['hover'])

使用悬停工具并选择第一个变量: 在此处输入图像描述 使用悬停工具并选择第二个变量: 在此处输入图像描述

请注意,为 var1 显示了正确的工具提示值 (0.200)。But when var2 is selected, the hover tool still shows the value for var1, even though the tooltip is in the correct place for var2. 这里发生了什么?

标签: pythonjupyter-notebookbokehholoviewspyviz

解决方案


显然这是全息视图中的一个错误,正如开发人员在这里回答的那样(问题 #3609)

它在 holoviews 1.12.2 版本中正式解决。如果有人仍然遇到这个问题,升级到最新版本应该可以解决它。


推荐阅读