首页 > 解决方案 > 无法在散景图中更新 CDSView

问题描述

我知道关于这个主题的许多主题已经被讨论过,但我看不出我的代码有什么问题我有大量数据要绘制(线),我想突出显示其中的一些(按圆圈)根据用户通过选择按钮的选择)我试图使我的代码尽可能简单以反映我的问题。

绘制了这条线,绘制了基于选择按钮的“默认”选择的圆圈,但是在我的选择小部件中选择另一个“stupid_label”时没有任何更新

import pandas as pd
import numpy as np
from bokeh.io import curdoc
from bokeh.plotting import figure
from bokeh.models import  ColumnDataSource, CDSView, GroupFilter
from bokeh.models.widgets import Select
from bokeh.layouts import row, column


def update_plot(attr, old, new):
    view.filters[0] = GroupFilter(column_name='stupid_label', group=stupidlabel.value)

def make_plot(fim):

    TOOLS = "save,pan,box_zoom,reset,wheel_zoom"
    p = figure(title="the plot that makes me mad !",plot_width=800, plot_height=400,tools=TOOLS)
    p.line(fim.mydates,fim.myvalues,color='blue')
    return p

def main(): 
    f = {'mydates': [19123, 19124, 19125, 19126,19127,19128,19129,19129,19130], 'myvalues': [34, 41, 12, 7, 27, 40, 32, 11, 1], 'stupid_label': ['POUET', 'POUET','BANZAI','BANZAI','BANZAI', 'YOUPI','YOUPI','POUET','POUET']}
    fim = pd.DataFrame(data=f)
    p = make_plot(fim)   

    u_stupid_label=np.unique(fim.stupid_label)
    stupidlabel = Select(value=u_stupid_label[0],options=list(u_stupid_label))

    src= ColumnDataSource(fim)
    view = CDSView(source=src,filters=[GroupFilter(column_name='stupid_label', group=stupidlabel.value)])
    p.circle('mydates','myvalues',source=src,view=view,color='black')

    stupidlabel.on_change('value', update_plot)

    layout = row(p, stupidlabel) 
    curdoc().add_root(layout)
    curdoc().title = "please.. works !!!"

main()

标签: pythonplotbokeh

解决方案


所有,我最后删除了我的 def main() 和 main(),它可以工作。


推荐阅读