python - 无法在散景图中更新 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()
解决方案
所有,我最后删除了我的 def main() 和 main(),它可以工作。
推荐阅读
- ios - 是否可以将 UIControl 与自定义 UIButton 等元素一起使用?
- java - 在此示例中,anyMatch 如何在 java 流中工作
- javascript - 编写一个函数以从 Json Obj 返回一个“列”数组
- rust - Web Assembly 和 Rust:cargo build 与 wasm-pack
- r - R中成对比例之间的成对比较,对一些多重测试而不是所有可能的多重测试进行了校正
- python - 为什么要加减 1000 进行霍夫线变换?
- .net - Rabbit MQ .Net Client 6.1 - 基本属性标头为空
- python - 将 datetime.datetime 字段之间的差异转换为秒
- sql - Postgres 从 NOT NULL 到 NULL 的时间戳列约束
- excel - 要求在没有宏的工作簿中启用宏