web-dev-qa-db-ja.com

Jupyter Notebookでボケが新しいタブを開くのを防ぐ方法は?

まず、これに重複のタグが付けられる前に、他の解決策を読みましたが、残念ながらどれもうまくいきませんでした。

私の問題は、新しいタブ/ウィンドウではなく、Jupyter Notebook(Jupyter Notebookのみ)にボケプロットを表示したいことです。

公式ドキュメントでは here 変更するだけでよいと言われています

output_file

output_notebook

プロットはインラインで表示されますと、インラインで表示されますが、ボケは新しいタブを開いて不必要にプロットを表示することを停止しません。

私はプロジェクトでたくさんのプロットを作成するので、この新しいタブを閉じてノートブックに戻る必要がなく、新しいタブの作成を停止することは非常に便利です。 matplotlib。

私を混乱させるのは、 公式チュートリアル をロードしてそこにコードを入力すると、たとえば

import numpy as np

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

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

show(p)

新しいタブは開かれていません。同じコードをマシンのJuypter Notebookでローカルに実行すると、doesが新しいタブを開きます。

私はこれを修正するためにしばらくの間努力してきました、どんな助けも非常にいただければ幸いです。

事前に感謝します、ヴィンセント

15
pfincent

ノートブックの上部でoutput_notebookを呼び出す必要がありますが、onlyoutput_notebookを呼び出します。 output_fileを呼び出すと、出力がファイルに保存される永続モードがアクティブになり、showがそれらのファイルで新しいタブを開きます。その永続モードをクリアするには、reset_outputを呼び出す必要があります。

便宜上、何人かのユーザーが要求したため、no出力モードが提供されている場合、showは、output_fileがデフォルトとして呼び出された場合と同様に動作します。バインダーチュートリアルからタブが開かれない理由は、バインダーサーバー上でリモートで実行されているコードがローカルブラウザーでタブを開くことが技術的に不可能であるためです(これは非常に良いことです)。

13
bigreddot

@bigreddotの answer に明示的な例を追加します。

ノートブックのどこかでbokeh.io.output_file()を実行して、注目すべきグラフを保存した可能性があります。ただし、データを検査するために、いくつかのプロットをすばやく実験したいだけです。

単にreset設定をノートブックの任意のセルのファイルへの保存を停止するには、次のようにします。

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()

後でファイルへの保存をアクティブにして、興味深いグラフを維持できます。

8
martin-martin