jupyterlab: сюжет боке отображается не в том браузере

У меня есть виртуальная машина, на которой работает jupyterlab, и я открыл ее для внешнего доступа. При запуске 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)

person Robert Lugg    schedule 14.02.2019    source источник


Ответы (1)


Проблема связана не с моей настройкой, а просто с моим непониманием боке. Боке имеет состояние. Итак, если вы вызываете output_file() или, возможно, даже если нет, он сохраняет все ваши графики, что приводит к их отображению в новой вкладке браузера. Решение - не делать этого :)

Размещение следующего кода в верхней части ячейки примера выше устранило проблему:

bokeh.io.reset_output()
bokeh.io.output_notebook()

Я нашел ответ здесь. Спасибо bigreddot и martin-martin

Технически мой вопрос повторяется. Однако это было достаточно неочевидно, поэтому я оставлю это.

person Robert Lugg    schedule 15.02.2019