我从这里下载了Bokeh Crossfilter示例的存储库: https://github.com/bokeh/bokeh/tree/master/examples/app/crossfilter
应该生成此处显示的交互式图: https://demo.bokehplots.com/apps/crossfilter
我在存储库中运行了main.py.然而,什么也没出现。然后我意识到代码没有显示布局。所以我最后添加了行显示(布局),它确实在Web浏览器上显示了布局,但是当我为x和y轴选择不同的东西时它不会更新绘图。我确实知道show(布局)代码只显示运行代码时的布局,而不是告诉它更新。但是,我无法弄清楚如何在网络浏览器上显示这个图,以便它仍然是交互式的(当我在浏览器上选择不同的轴时会更新图表。)
我非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
http://bokeh.pydata.org/en/latest/docs/gallery.html 在库中,您可以看到示例的第一部分属于散景服务器应用类别,并且需要散景服务器以交互方式工作。
示例的第二部分是独立的(仅在浏览器中)。
要核心运行应用程序:下载文件夹的所有内容,并将其保存在文件夹中,比如crossfilter。打开命令提示符(不在python中)并键入bokeh serve --show crossfilter。 这将打开应用程序,它应该响应用户交互。
从python运行show(layout)和从命令行提供散景应用程序可以实现的目标有一个关键的区别。
使用show(...)将在浏览器中显示内容,从这里python和浏览器之间没有连接,因此无法从python函数更新图。它只能使用javascript(在浏览器中运行)。在crossfilter示例中没有javascript回调,因此当您与任何内容进行交互时不会发生任何事情。
Bokeh提供服务器功能,允许从python运行代码并更新用户交互图。从这里开始:http://bokeh.pydata.org/en/latest/docs/user_guide/server.html