【问题标题】:Interactive browser plot in Python 3.5 using bokeh/flexx pyscriptPython 3.5 中使用 bokeh/flexx pyscript 的交互式浏览器绘图
【发布时间】:2016-09-03 01:19:19
【问题描述】:

来自维护者的注意: pyscript 支持已被弃用,将在 Bokeh 2.0 中删除



我目前正在学习 Python,并尝试制作一个在浏览器上运行的交互式仪表板。我使用 Bokeh 进行可视化,使用 flexx/pyscript 进行回调交互。第一个目标是制作一个过滤数据集的按钮。我尝试在

上使用滑块示例

http://docs.bokeh.org/en/0.11.1/docs/user_guide/interaction.html

我对其进行了修改,只需单击一个按钮即可更改数据(实际过滤将是第 2 步)。

x = [1,2,3] # dummy data
y = [4,5,6] # dummy data

# output to static HTML file
# output_file("sample.html", title="sample")
source = ColumnDataSource(data=dict(x=x, y=y))
# create a new plot with a title and axis labels
plot = Figure(plot_width=400, plot_height=400)
plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)


def callback(source=source):
    data = source.get('data')
    f = cb_obj.get('value')
    x, y = data['x'], data['y']
    x = [0.9,0.8,0,7]
    y = [1,2,3]
    source.trigger('change')

button = Button(callback=CustomJS.from_py_func(callback))
button.on_click(source)

layout = vform(button, plot)

show(layout)

页面加载,我可以单击按钮,但未触发绘图的更改。您知道如何修改此代码,以便通过使用散景按钮事件处理程序触发和实际更改吗?我搜索了很多网站,但找不到一个很好的例子。

提前致谢!

【问题讨论】:

    标签: javascript python interactive bokeh


    【解决方案1】:

    您只需要实际更新数据源上的数据

    def callback(source=source):
        data = source.get('data')
        f = cb_obj.get('value')
        data['x'] = [0.9, 0.8, 0,7]
        data['y'] = [1,   2,   3  ]        
        source.trigger('change')
    

    您的代码只需创建 new 变量 xy,然后立即覆盖它们。这实际上并没有更新.data,这是需要发生的。

    【讨论】:

    • 谢谢,再问一个问题。当我按下按钮时,值会相应更改,但随后绘图会立即重置。我只希望在我第二次按下按钮时发生这种情况。有什么想法吗?
    • 我不太清楚你的意思,你的意思是你不希望数据更新立即发生?我认为你可以让回调来回切换一些布尔值,并且只在true 上调用触发器。例如window.my_callback_flag,但可能有比window上的全局更好的主意
    • 当我点击时,我的绘图会短暂显示回调中指定的新数据,但随后页面会重新加载并立即再次显示原始绘图。
    • 好像和这个问题有关。 stackoverflow.com/questions/7803814/…。但是这个页面只提供了一个html解决方案
    • 此按钮问题已在当前主版本中修复,并将包含在即将发布的0.12 版本中。
    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 2018-07-27
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多