从jupyter笔记本获取交互式滑块以在bokeh html文件中工作

问题描述 投票:1回答:1

你好,这是我的第一个问题(在所有事情上都是菜鸟,而且有点紧张,不要让你感到紧张。

我的总体目标是创建一个30分钟的课程(部分),学生可以在其中看到:

  • 交互式图形和超高级代码。

    • 被吸引成为软件工程师或至少开始阅读代码。 (我衡量影响)

为此,我认为Jupyter笔记本是最好的武器。出于可用性的原因和不同级别的交互性,我开始考虑创建具有远程访问权限的html文件(在让我在学校环境中安装更多产品之前,我的管理员会杀了我)

所以我看到了:

from bokeh.plotting import figure
from bokeh.resources import CDN
from bokeh.embed import file_html

plot = figure()
plot.circle([1,2], [3,4])

html = file_html(plot, CDN, "my plot")

根据散景图创建html。

但是如何获得与此独立的html文件的良好交互滑块。

因此,如何(即使是无意义的)转换此example

from ipywidgets import interact
import numpy as np

from bokeh.io import push_notebook, show, output_notebook
from bokeh.plotting import figure
output_notebook()

In [ ]:

x = np.linspace(0, 2*np.pi, 2000)
y = np.sin(x)

In [ ]:

p = figure(title="simple line example", plot_height=300, plot_width=600, y_range=(-5,5))
r = p.line(x, y, color="#2222aa", line_width=3)

In [ ]:

def update(f, w=1, A=1, phi=0):
    if   f == "sin": func = np.sin
    elif f == "cos": func = np.cos
    elif f == "tan": func = np.tan
    r.data_source.data['y'] = A * func(w * x + phi)
    push_notebook()

In [ ]:

show(p, notebook_handle=True)

In [ ]:

interact(update, f=["sin", "cos", "tan"], w=(0,100), A=(1,5), phi=(0, 20, 0.1))


进入某事。像这样:https://demo.bokeh.org/sliders

感谢您的每条评论。对不起,我的英语不如外表,但我不如外表上的聪明]

jupyter-notebook slider bokeh
1个回答
0
投票

也许答案在其中某处,但我还不在那里:

https://ipywidgets.readthedocs.io/en/latest/embedding.html


0
投票

我不知道有什么简单的方法可以使用Jupyter interactors在独立的HTML中完成这项工作。但是,您可以使用Bokeh自己的小部件制作独立的输出来完成此任务:

https://docs.bokeh.org/en/latest/docs/gallery/slider.html

Bokeh 2.0应该完成一些正在进行的工作,这些工作将允许Jupyter交互器与Bokeh服务器应用程序一起使用(而不是独立输出)。>>

© www.soinside.com 2019 - 2024. All rights reserved.