Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带“选择”的BokehAPP用于更改未显示其中一个图的图_Python_Bokeh_Bokehjs - Fatal编程技术网

Python 带“选择”的BokehAPP用于更改未显示其中一个图的图

Python 带“选择”的BokehAPP用于更改未显示其中一个图的图,python,bokeh,bokehjs,Python,Bokeh,Bokehjs,我正在使用Bokeh服务器构建一个交互式绘图,该绘图随选项列表['a'、'B'、'C']而变化。它很好用。其defalut值为“A”,绘图显示良好。如果我从“A”切换到“B”或“C”,效果也很好。如果我从“B”切换到“C”,它也可以正常工作。问题是,当我从“C”切换到“B”时。。。没有显示任何绘图。。。。我只是不明白为什么所有其他的切换命令都能正常工作,只有这一个,不能 使用初始选项选择“a”初始化用于绘图的df df_绘图=df_模块位置['A'] source=ColumnDataSourc

我正在使用Bokeh服务器构建一个交互式绘图,该绘图随选项列表['a'、'B'、'C']而变化。它很好用。其defalut值为“A”,绘图显示良好。如果我从“A”切换到“B”或“C”,效果也很好。如果我从“B”切换到“C”,它也可以正常工作。问题是,当我从“C”切换到“B”时。。。没有显示任何绘图。。。。我只是不明白为什么所有其他的切换命令都能正常工作,只有这一个,不能

使用初始选项选择“a”初始化用于绘图的df df_绘图=df_模块位置['A'] source=ColumnDataSourcedf\U绘图 p=figuretitle=titulo,x_range=listdf_plot.index p、 vbar\u堆栈列表\u列\u栏,x='Column\u x',宽度=0.9,源=源 选择_concento=Selecttitle='Title', 选项=列出选项,值='A' def开关_plotattr,旧的,新的: 选项=选择选项值 data=source.data df_绘图=df_模块位置[选项] p、 x_范围系数=listdf_plot.index 我的数据的分类x存储在df_图的索引中 数据['Column_x']=df_plot.index 更新新df_图中的所有数据列 对于df_plot.columns中的i: 数据[i]=df_图[i] 选择选项。在更改“值”时,切换绘图
解决了用for循环代替dict理解的问题。新的回调函数如下所示:

    def switch_plot(attr,old,new):
        option = select_option.value

        df_plot=df_mod.loc[option]

        p.x_range.factors=list(df_plot.index)

        ### Updating data with dict comprehension
        source.data={i:df_plot.reset_index()[i] for i in df_plot.reset_index().columns}