我有一个使用Matplotlib的许多脚本的项目。我想为这个项目构建一个Web界面。
如何在变色龙模板中放置散景图?如果重要的话,我正在使用Pyramid和Deform bootstrap。
有没有人有好榜样?
答案 0 :(得分:2)
这里有几个不同的问题需要解决。
如果你真的想把很多Matplotlib图移植到交互式JS中,那么可能 mpld3项目非常适合你。但是,您应该知道,通过使用D3,将会影响性能,具体取决于绘图中的点数。 Bokeh现在也有基本的Matplotlib支持,并且只会获得更多。 Jake目前正在将mpld3项目重构为一个明确的导出器,然后是D3渲染器,我们也可能会为Bokeh Matplotlib支持做这项工作。
要使用Bokeh执行此操作,您可以通过查看例如,如何获取绘图的原始HTML HTMLFileSession.dumps()
已实施:https://github.com/ContinuumIO/bokeh/blob/master/bokeh/session.py#L295。默认模板为bokeh/templates/base.html
;但是,这是一个完整的HTML文件,而不是片段。 dumps()方法非常简单,默认模板也是如此,因此您应该能够从查看这些模型中获得所需的内容。希望在下一个版本中,我们将完成一个HTMLFragmentSession
,这将使其更容易嵌入。
答案 1 :(得分:2)
您想使用plot.create_html_snippet
。此函数返回要在HTML中显示的代码,该函数还会写出一个嵌入文件。
这就是嵌入代码段的样子
<script src="http://localhost:5006/static/dc0c7cfd-e657-4c79-8150-6a66be4dccb8.embed.js" bokeh_plottype="embeddata" bokeh_modelid="dc0c7cfd-e657-4c79-8150-6a66be4dccb8" bokeh_modeltype="Plot" async="true"></script>
以下参数控制如何写出嵌入文件,以及js代码搜索嵌入文件的位置。
embed_base_url
控制javascript将在其中搜索嵌入文件的网址路径(可以是绝对路径或相对路径)。
embed_save_loc
控制python将写入嵌入文件的目录。当server = True时,不需要embed_save_loc
static_path controls
jl将用于为bokeh.js和bokeh.css构建URL的URL路径(它可以是绝对路径或相对路径)。默认为http://localhost:5006/static/
,但可以轻松指向CDN
运行散景服务器时,导航到http://localhost:5006/bokeh/generate_embed/static
。我认为这需要你因为一个bug而在master上运行。
我希望这会有所帮助。