python – 麻烦嵌入散景图

在一个允许用户绘制某些数据的烧瓶网站上,我决定使用散景而不是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片段的最佳方式?

最佳答案 确实弃用了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的问题,我们可以讨论或调查更多.

点赞