ipywidgetsが有効な場合、Jupyter Notebookからプログラムでチェックしたいと考えています。それをどうやって行うのですか? nbextensions
とnotebook
のモジュールを調べてみましたが、有効な拡張機能を一覧表示する機能が見つかりませんでした。Jupyterノートブック拡張機能が有効になっているかどうかをチェックする方法は?
My NotebookはGitHub上にあり、静的なプロットを提供したいと思います。ユーザーが実際にノートブックを実行していて、ipywidgetsをインストールして有効にしている場合は、インタラクティブバージョンも追加します。
プロットコードは、擬似コードで
# Setup by importing some libraries and configuring a few things
import numpy as np
import ipywidgets
import matplotlib.pyplot as plt
%matplotlib inline
# Create two random datasets
data = np.random.random(15)
smallerdata = np.random.random(15) * 0.3
# Define a plotting function
def drawPlot():
plt.plot(range(len(data)), data, label="random data");
plt.plot(range(len(smallerdata)), smallerdata, 'r--', label="smaller random data");
plt.title("Two random dataset compared");
plt.grid(axis='y');
plt.legend();
# Define an interactive annotation function
def updatePlot(s=0):
print("data {0:.2f}, smallerdata {1:.2f}".format(data[s], smallerdata[s]))
drawPlot()
plt.annotate(s=round(data[s], 2),
xy=(s, data[s]),
xytext=(s + 2, 0.5),
arrowprops={'arrowstyle': '->'});
plt.annotate(s=round(smallerdata[s], 2),
xy=(s, smallerdata[s]),
xytext=(s + 2, 0.3),
arrowprops={'arrowstyle': '->'});
plt.show();
で、私はこのような何かを達成したいと思います:コマンドラインから
if nbextensions.enabled('ipywidgets'):
slider = ipywidgets.interactive(updatePlot, s=(0, len(data) - 1, 1));
display(slider)
else:
drawPlot()
を、概念的に類似したコマンドがjupyter nbextension list
ですが、私はやりたいですこれは実行中のPython環境からのもので、ユーザーがGitHub(またはそれに類似したもの)のNotebookを見ているときにも静的プロットを提供します。
ありがとうございました:)
どのような場合でもプロットを表示し、可能であればウィジェットを表示するのはどうですか? – ImportanceOfBeingErnest
ありがとう@ImportanceOfBeingErnest、概念的には私が心に留めていることです。しかし、私はウィジェットからプロットを再描画しているので、ipywidgetsが有効になっていれば、プロットの2つのコピーが作成されます:最初は静的なもの、次にインタラクティブなものです。これは私が今いる状況です:) –