使用Bokeh show()命令的单元会永远运行-绘制后如何使它们停止?

时间:2019-12-11 20:58:42

标签: jupyter-notebook bokeh

我有一个Juypter Notebook单元,上面有一些代码(不是我的代码),可以生成散景图。单元格中的最后一个命令是Bokeh show()命令。我想要的是该图出现在下面的输出单元格中,然后能够继续运行笔记本中的后续单元格。

发生的事情是,当我运行单元格时,该图显示在下面,但是带有代码的单元格继续运行(在左括号中为星号),并且永不停止。因此,除非单击停止按钮(这将使绘图在输出单元格中保持不变,但会跟随许多错误回溯消息行),否则我将无法继续运行其他任何单元格。

我的理解是,执行output_notebook()函数应导致show()给出我想要的行为,如下所述:

https://docs.bokeh.org/en/latest/docs/user_guide/notebook.html

在他们的屏幕截图中,带有show()命令的单元格显然已经完成运行(没有星号)。

我不确定是否有任何区别,但就我而言,我是在远程服务器上运行笔记本,并使用端口转发在笔记本计算机浏览器上查看它。

有人知道我如何获得show()命令来完成运行吗?

作为参考,这是代码:

# Use the PCA projection
dset = proj_pca

# Select the dimensions in the projection
dim1 = 0
dim2 = 1

p = figure(plot_width=945, plot_height=560)
p.title.text = 'PCA projection: PC' + str(dim1+1) + ' vs PC' + str(dim2+1)

for cont in continents: 
    for pop in pop_by_continent[cont]:
        projections_within_population = dset[indices_of_population_members[pop]]
        p.circle(projections_within_population[:,dim1], projections_within_population[:,dim2], 
                 legend=name_by_code[pop], color = color_dict[pop])

#p.legend.visible = False
p.legend.location = "top_center"
p.legend.click_policy="hide"

output_file("interactive_pca.html", title="PCA projection")
output_notebook()

#save(p)
show(p)

0 个答案:

没有答案