麻烦嵌入散景图

时间:2014-06-27 04:35:10

标签: python flask anaconda bokeh

在一个允许用户绘制某些数据的烧瓶网站上,我决定使用散景而不是matplotlib,因为它似乎是为嵌入而构建的,能够使用动态数据。我已经搜索了在线示例和散景文档。在示例中,我看到命令'create_html_snippet',它应该返回一个可插入模板的html片段:

from bokeh.plotting import *

import numpy as np


# Define a function that will return an HTML snippet.

def build_plot():

# Set the output for our plot.

output_file('plot.html', title='Plot')

# Create some data for our plot.

x_data = np.arange(1, 101)
y_data = np.random.randint(0, 101, 100)

# Create a line plot from our data.

line(x_data, y_data)

# Create an HTML snippet of our plot.

snippet = curplot().create_html_snippet(embed_base_url='../static/js/',
                                        embed_save_loc='./static/js')

# Return the snippet we want to place in our page.

return snippet

我正在运行此代码以及下面的主要代码:

from flask import Flask, render_template
from plots import build_plot

app = Flask(__name__)

@app.route('/') # The base URL for the home page.
def render_plot():
plot_snippet = build_plot()

return plot_snippet

if __name__ == "__main__":
app.run(debug=True)

在文档中找不到“create_html_snippet”命令,而我的anaconda版本的python(由正在开发散景的人创建)会出现以下错误:

AttributeError:'Plot'对象没有属性'create_html_snippet'

似乎散景正在经历快速发展,我想知道它是否被弃用了。有谁知道目前获取我正在寻找的html片段的最佳方式?

1 个答案:

答案 0 :(得分:7)

create_html_snippet确实已被弃用。我们将在7月7日发布Bokeh 0.5,现在有一个大大改进,简化和记录的bokeh.embed模块取代了该功能。如果您想尽快试用,现在可以使用开发版,说明在邮件列表中:

https://groups.google.com/a/continuum.io/forum/#!topic/bokeh/NVxeqdYy2eQ

您可以在此处看到新的嵌入模块(包含完整的文档字符串):

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

以及一个非常好的Flask嵌入示例:

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

我们还没有能力为dev版本发布Sphinx文档,但您可以在此处查看新文档的markdown文件:

https://github.com/ContinuumIO/bokeh/blob/master/sphinx/source/docs/user_guide.rst#embedding

这些也将进一步扩展,但现在它们给出了很好的概述。

编辑:这就是说,create_html_snippet暂时应该在那里并且功能正常。如果您想就GH提出问题,我们可以进行讨论或进行更多调查。