繁体   English   中英

调用 export_png 时未反映对 Bokeh plot 的更改(例如缩放)

[英]Changes to Bokeh plot (e.g. zooming) not reflected when calling export_png

我在 Jupyter 笔记本中有一个 Bokeh plot 可以缩放和平移。 在后来的笔记本单元中,我想调用 Bokeh 的 export_png function 以完全按照显示的方式导出 plot,但是,导出的 plot 不反映 plot 的当前缩放状态。

例如

from bokeh.plotting import figure, show

# prepare some data
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# create a new plot with a title and axis labels
p = figure(title="Simple line example", x_axis_label="x", y_axis_label="y")

# add a line renderer with legend and line thickness
p.line(x, y, legend_label="Temp.", line_width=2)

# show the results
show(p)

然后在后面的单元格中:

from bokeh.io import export_png

export_png(p, filename="plot_test.png")

我可以单击 plot 工具栏中的“保存”按钮,这将保存 plot,就像它在当前缩放 state 的笔记本中显示的一样,但是我很好奇是否可以在笔记本中以编程方式执行此操作?

这对于基本的独立 output(即output_notebookshow在 plot 对象上)绝对是不可能的,因为一旦显示 plot,浏览器/JS 端的事物就完全独立并且不受“Python 端”上任何事物的束缚。 可以想象这可能的唯一方法是:

  • SaveTool添加到 plot 并单击它的工具栏按钮——这会在“JS 端”使用当前的 state从 JavaScript生成一个 PNG

  • 而是嵌入 Bokeh 服务器应用程序。 Bokeh 服务器正是为保持“Python 端”和“JS 端”同步而存在的东西。 但是您只能从设置的回调中调用export_png ,例如在单击或点击Button或任何支持的事件时。 它不适用于外部笔记本电池。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM