首先,在将其标记为重复之前,我已经阅读了其他解决方案,但是不幸的是,没有一个对我有用。
我的问题是我想在Juypter Notebook(并且仅在Jupyter Notebook)中显示散景图,而不是在新的标签/窗口中显示。
在官方文档here中,我只需要进行更改
output_file
到
output_notebook
即使我这样做,即使情节现在已显示为行内,bokeh也不会停止,而且还会打开一个新选项卡并在其中不必要地显示情节。
由于我要在项目中创建很多绘图,因此很高兴不必总是关闭此新选项卡并返回到笔记本,而是让它停止创建新选项卡,就像它能正常工作一样与例如matplotlib。
让我困惑的是,例如,如果我加载official tutorial并在其中输入代码
import numpy as np
x = np.linspace(0, 10, 100)
y = np.exp(x)
p = figure()
p.line(x, y)
show(p)
没有打开新的选项卡。如果现在我在计算机的Juypter Notebook上本地运行相同的代码,它会确实打开一个新标签。
我已经尝试了一段时间以解决此问题,我们将不胜感激。
先谢谢Vincent
答案 0 :(得分:10)
您需要在笔记本顶部致电output_notebook
,但仅 致电output_notebook
。如果您完全调用output_file
,将激活一种持久模式,该模式将输出保存到文件中,并使show
用这些文件打开新的标签页。您需要调用reset_output
来清除该持久模式。
为方便起见,由于有几个用户要求使用它,因此如果提供了 no 输出模式,则show
的行为就像默认调用output_file
一样。未从Binder教程中打开选项卡的原因是,从技术上讲,在Binder服务器上远程运行的代码无法在本地浏览器上打开选项卡(这是一件好事)。
答案 1 :(得分:5)
为@bigreddot的answer添加一个明确的示例:
您可能已经在笔记本中的某个地方运行了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()
您可以稍后再激活保存到文件,以保留有趣的图形。
答案 2 :(得分:0)
您可以导入:
from bokeh.plotting import output_notebook
并在声明output_notebook
之前调用figure
,然后使用show
显示该图形。参见doc。