首页 > 解决方案 > 如何通过 FileInput Bokeh 更新滑块值

问题描述

我创建了一个带有多个滑块的交互式散景仪表板。所有滑块的配置代表一个场景,可以导出为 CSV 文件。现在我希望能够重新加载场景,该场景存储在 CSV 中以更新滑块的值。不幸的是,我收到以下错误:

ValueError: failed to validate Slider(id='3566', ...).value: expected a value of type Real, got [16.] of type ndarray

我不明白“类型 Real”是什么意思以及如何调整它。

FileInput 行如下所示:

 def import_data(attr, old, new):

            decoded = b64decode(new)
            f = io.BytesIO(decoded)
            
            df=pd.read_csv(f, sep=';', engine='python')
            dff = pd.DataFrame(df)
            
            source=ColumnDataSource(data=dff)          
            slider.value=source.data['Column1'] #the column has only 1 row with the value 16
            slider2.value=source.data['Column2']
            slider3.value=source.data['Column3']

            
 file_input.on_change('value', import_data)

我基本上在没有 ColumnDataSoure 的情况下尝试了同样的事情,但它导致了同样的错误。

标签: pythonbokeh

解决方案


滑块值必须设置为数字(“实数”)值而不是数组。在这种情况下,可以将索引添加到行

slider.value=source.data['Column1'][0]

推荐阅读