在一个允许用户绘制某些数据的烧瓶网站上,我决定使用散景而不是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片段的最佳方式?
答案 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提出问题,我们可以进行讨论或进行更多调查。