如何阻止散景在Jupyter Notebook中打开新标签?

pfi*_*ent 12 python python-3.x bokeh jupyter-notebook

首先,在此之前被标记为重复,我已经阅读了其他解决方案,不幸的是,它们都没有为我工作.

我的问题是我想在Juypter Notebook中显示散景图(仅在Jupyter Notebook中),而不是在新的选项卡/窗口中.

这里的官方文档中,我被告知我只需要改变

output_file
Run Code Online (Sandbox Code Playgroud)

output_notebook
Run Code Online (Sandbox Code Playgroud)

虽然情节,如果我这样做了内嵌显示,背景虚化不会停止也打开一个新标签,并显示不必要的情节出现.

由于我将在我的项目中创建大量的图表,所以不必总是关闭这个新的选项卡并返回到笔记本,这是非常好的,但只是让它停止创建新选项卡,就像它可以使用例如matplotlib一样.

令我困惑的是,如果我加载官方教程并在那里输入代码,例如

import numpy as np

x = np.linspace(0, 10, 100)
y = np.exp(x)

p = figure()
p.line(x, y)

show(p)
Run Code Online (Sandbox Code Playgroud)

没有新标签打开.如果我现在在我的机器的Juypter Notebook上本地运行相同的代码,它打开一个新选项卡.

我已经尝试了一段时间来解决这个问题,任何帮助都会非常感激.

先谢谢,文森特

big*_*dot 13

你需要output_notebook在笔记本电脑的顶部打电话,但只能打电话output_notebook.如果您完全调用output_file,则会激活将输出保存到文件的持久模式,并导致show使用这些文件打开新选项卡.您需要调用reset_output以清除该持久模式.

为方便起见,由于有几个用户要求它,如果没有提供输出模式,show就好像output_file被称为默认行为一样.没有从Binder教程打开选项卡的原因是因为在Binder服务器上远程运行的代码在技术上不可能在本地浏览器上打开选项卡(这是一件非常好的事情).


mar*_*tin 10

在@bigreddot的答案中添加一个明确的示例:

您可能已经bokeh.io.output_file()在笔记本中某个地方跑过,以保存值得注意的图形。但是,现在您只想快速尝试一些图来检查数据。

只需重置您的设置即可停止保存到笔记本中任何单元格中的文件,如下所示:

import bokeh.io
# this is here only for completeness to clarify where
# the methods are nested (you probably already imported this earlier)


bokeh.io.reset_output()
bokeh.io.output_notebook()
Run Code Online (Sandbox Code Playgroud)

您可以稍后再次激活保存到文件,以保留有趣的图形。