问题描述
我正在尝试使用 holoviz 工具创建一个交互式仪表板,特别是 Holoviews、面板和 hvplot,它响应条形图上的选择,但在使用选择索引数据时遇到问题。
这是一个 MWE(这适用于 JupyterLab 中的笔记本,其他环境可能需要稍作调整):
import pandas as pd
import holoviews as hv
import panel as pn
import hvplot.pandas
df = pd.DataFrame({
'a': [0,1,2,2],'b': [3,4,5,3,5],'n': [10,20,30,40,50,60,70,80,90],})
bars = hv.Bars(df,kdims=['a','b'])
bars.opts(tools=['tap'])
selection = hv.streams.Selection1D(source=bars)
@pn.depends(selection.param.index)
def selected_info(index):
return bars.data.iloc[index]
pn.Row(bars,selected_info)
当用户以交互方式选择一个条形时,应显示 DataFrame 中的相应行,但我得到了错误的行。
例如,如果我选择图中的第三个条形,它对应于 df
和 bars.data
(a=0,b=5,n=30) 中索引为 2 的行获取索引为 6 的行 (a=2,b=3,n=70):
如何正确索引数据?
我更喜欢修复此示例的解决方案,而不是采用完全不同的方法(因为这是一个最小的示例,完全不同的方法可能无法满足我的需要)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)