【问题标题】:Displaying Bokeh Crossfilter Example显示散景交叉滤镜示例
【发布时间】:2017-06-23 19:55:54
【问题描述】:

我从这里下载了 Bokeh Crossfilter 示例的存储库:

https://github.com/bokeh/bokeh/tree/master/examples/app/crossfilter

它应该生成这里显示的交互式绘图:

https://demo.bokeh.org/crossfilter

我在存储库中运行了 main.py。然而,什么也没有出现。然后我意识到代码没有显示布局。所以我最后添加了 show(layout) 行,它确实在网络浏览器上显示了布局,但是当我为 x 和 y 轴选择不同的东西时,它不会更新绘图。我确实意识到 show(layout) 代码仅显示运行代码时的布局,并没有告诉它更新。但是,我不知道如何在网络浏览器上显示此图,以便它仍然是交互式的(当我在浏览器上选择不同的轴时会更新图)。

我将非常感谢任何帮助。谢谢!

【问题讨论】:

    标签: python bokeh crossfilter


    【解决方案1】:

    http://docs.bokeh.org/en/latest/docs/gallery.html 在图库中,您可以看到第一部分示例属于散景服务器应用程序类别,并且需要散景服务器以交互方式工作。

    示例的第二部分是独立的(仅在浏览器中)。

    要正确运行应用程序:下载文件夹的所有内容,并将它们保存在文件夹中,例如 crossfilter。打开命令提示符(不在 python 中)并输入 bokeh serve --show crossfilter。 这将打开应用程序,它应该响应用户交互。

    从 python 运行 show(layout) 和从命令行提供散景应用程序可以实现的关键区别。

    使用 show(...) 将在浏览器中显示内容,从这里开始,python 和浏览器之间没有连接,因此无法从 python 函数更新绘图。它只能使用 javascript(在浏览器中运行)。在 crossfilter 示例中没有 javascript 回调,因此当您与任何东西交互时不会发生任何事情。

    Bokeh 提供服务器功能,允许从 python 运行代码并更新用户交互的图。从这里开始:http://docs.bokeh.org/en/latest/docs/user_guide/server.html

    【讨论】:

    • 非常感谢!因此,crossfilter 示例不会生成 .html 文件,您可以简单地使用该文件在网站上托管绘图,因为由于交互,它不是静态图,对吧?
    • 这是正确的 - 如果您尝试生成静态 html,则任何小部件都不会起作用。如果您想要一个带有交互的独立 html,您需要重写代码以使用可能的 javascript 回调。
    猜你喜欢
    • 1970-01-01
    • 2012-09-23
    • 2012-09-03
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多