散景 autoload_static 仍然互动

Bokeh autoload_static still interactive

我假设我做错了什么,因为当我尝试使用 Bokeh 的 'autoload_static' 函数并将脚本标记放在我的 html 文件中时,图形仍然是交互式的?除此之外,我的脚本标签(通过静态自动加载)的输出看起来与教程并不完全相同,尽管它是相同的代码...

非常感谢您的帮助。我正在尝试将其输出为静态,以便我可以使用 pdfkit 将其正确转换为 pdf - 不幸的是,它不适用于交互式图形。

谢谢!

Html :

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Bokeh Scatter Plots</title>

        <!-- <link rel="stylesheet" href="http://cdn.bokeh.org/bokeh/release/bokeh-0.12.7.min.css" type="text/css" /> -->
        <!-- <script type="text/javascript" src="http://cdn.bokeh.org/bokeh/release/bokeh-0.12.7.min.js"></script> -->

    </head>
    <body>


<script
    src="js-outputted-by-autoload_static"
    id="f9632bd4-873b-4c08-a4ad-c8a997873430"
    data-bokeh-model-id="bec3e18b-71d0-4d3d-9d6a-0079d8fc6082"
    data-bokeh-doc-id="b39e1b50-1e37-4062-92a8-888cc4424328"
></script>

</html>

散景:

from bokeh.resources import CDN
from bokeh.plotting import figure
from bokeh.embed import autoload_static

plot = figure()
plot.circle([1,2], [3,4])

js, tag = autoload_static(plot, CDN, "js-outputted-by-autoload_static")

autoload_static 不是用于生成 图像 ,而是用于生成 JavaScript 可以在网页中嵌入标准交互式散景图的文件。 "static" 部分指的是这些图不受 Bokeh 服务器支持。

由于 autoload_static 仍然生成 JavaScript 以渲染到 HTML canvas,我怀疑它对 pdfkit 是否有用(我认为它不能做任何事情用 JS 代码)。

如果您想创建散景图的 图像 (例如 PNG),您应该查看用户指南的 Exporting Plots 部分。使用最新版本的 Bokeh,您可以执行

from bokeh.io import export_png

export_png(plot, filename="plot.png")

生成 PNG(这大概是 pdfkit 可以处理的)。需要安装一些可选的依赖项才能使用此功能,链接的用户指南包含所有信息。