1

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

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

谢谢!

网页:

<!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")
4

1 回答 1

0

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

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

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

from bokeh.io import export_png

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

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

于 2017-10-11T18:54:42.797 回答