5

我正在尝试使用 Bokeh 的“create_html_snippet”方法在网页中呈现 pandas/seaborn 图。

作为测试,我在这里克隆了@rpazyaquian 的演示 repo - https://github.com/rpazyaquian/bokeh-flask-tutorial/wiki/Rendering-Bokeh-plots-in-Flask。不幸的是,由于创建回购后散景的变化,它不起作用。

页面上的主要 HTML 输出完全相同,只是唯一的散景文件名明显不同。

总体上唯一的区别在于散景生成的 *.embed.js 文件。如下面的摘录所示,该文件中的主机/静态路径变量似乎无法正常工作。使用内置的 Flask 开发服务器和 gunicorn 进行了测试。

这是@rpazyaquian 的Heroku 网站上工作版本的顶部:

var host = "";

var staticRootUrl = "http://localhost:5006/bokeh/static/";
if (host!=""){

    staticRootUrl = host + "/static/";
    var bokehJSUrl = window.location.protocol + "//" + staticRootUrl + "js/bokeh.js";
}
else {
    bokehJSUrl = staticRootUrl +"js/bokeh.js";
}

这是使用 Heroku 0.4 的不工作的本地版本:

var host = "";

var staticRootUrl = "http://localhost:5006/bokeh/static/";
if (host!=""){

    staticRootUrl = "//" + host + "/bokehjs/static/";
    var bokehJSUrl = staticRootUrl + "js/bokeh.js";
}
else {
    bokehJSUrl = staticRootUrl +"js/bokeh.js";
}

明显问题:

  1. 主机不是http://localhost:5006,它是http://127.0.0.1:5000/在使用开发服务器或使用 gunicorn / nginx 时选择的任何东西
  2. 我不知道“bokehjs”文件夹的设置位置——但在这里似乎不相关。

关于 Bokeh 中发生了什么变化可以解决这个问题的任何想法?或者,任何使用替代方法通过 Flask 模板成功提供散景图的人 - 如果有更好的路线,请告诉我。我只是想返回要输出到模板的图表的 HTML 片段。

4

1 回答 1

4

更新:此功能已被弃用。现在请使用更好的bokeh.embed模块:

https://github.com/ContinuumIO/bokeh/blob/master/bokeh/embed.py

您可以在以下位置查看一些使用示例:

https://github.com/ContinuumIO/bokeh/tree/master/examples/embed

于 2014-07-17T12:36:10.367 回答