我有一个运行jupyterlab的VM,并已将其打开以供外部访问。当jupyter-lab启动时,将打开本地浏览器,这很好。
在外部,我访问了jupyterlab,并且一切正常。但是,当我绘图时,输出不会显示在浏览器中,而是显示在以jupyter-lab 开头的本地浏览器中的新选项卡。
如果我有%matplotlib inline
,也会发生同样的事情。
由于现在显示为内联,因此以下内容要好一些。但是,其他浏览器中仍会打开一个新标签。
%matplotlib inline
from bokeh.plotting import figure, show, output_notebook
from bokeh.sampledata.iris import flowers
output_notebook()
colormap = {'setosa': 'red', 'versicolor': 'green', 'virginica': 'blue'}
colors = [colormap[x] for x in flowers['species']]
p = figure(title = "Iris Morphology")
p.xaxis.axis_label = 'Petal Length'
p.yaxis.axis_label = 'Petal Width'
p.circle(flowers["petal_length"], flowers["petal_width"],
color=colors, fill_alpha=0.2, size=10)
# output_file("iris.html", title="iris.py example")
show(p)
答案 0 :(得分:0)
该问题与我的设置无关,而仅仅是与我对Bokeh的缺乏了解有关。散景有状态。因此,如果您调用output_file()或什至没有调用它,它会保存您的所有绘图,从而使它们也显示在新的浏览器选项卡中。解决的办法是不这样做:)
在上面的示例单元格的顶部放置以下代码可解决此问题:
bokeh.io.reset_output()
bokeh.io.output_notebook()
我找到了答案here。谢谢bigreddot和Martin-Martin
从技术上讲,我的问题是重复的。但是,它不够明显,我将其保留。