はじめに
jupyter notebook, labで対話的な操作ができる機能(ipywidgets)のドロップダウンでデータを選択してそのヒストグラムを表示する方法について説明する。
matplotlibの場合
コード
解説
モジュールのインポートなど
jupyter labでインタラクティブな操作をするには、冒頭で%matplotlib widgetとする。
jupyter lnotebookの場合は%matplotlib notebookとなる。
所定のGUIにより別ウインドウで表示するには、%matplotlibとする。
バージョン
データの作成
np.logspace(3,5,3)で[1000,10000,100000]の配列を作成できる。
np.random.normal(0,1,i)で平均値0、標準偏差1の正規分布に従う乱数をi個作成する。
ヒストグラムデータの作成
np.histogramでヒストグラムのheightとbinのデータを作成する。heightデータ,binデータをそれぞれ空のリストに入れる。
Dropdownの設定
optionsで[(‘data1’, 0), (‘data2’, 1), (‘data3’, 2)]のようにすると、data1を選択したときに0が返される。valueは初期値となる。
@interactでipywidgetsを有効にする。
f(dd)はドロップダウンを選択するたびに実行される。
data1などから任意のものを選択すると、ax.cla()で図を初期化してから、すきまが開かないようにwidthを調整し、ax.barで各データのヒストグラムを表示する。データ数1000のdata1のヒストグラムは下図のようになる。
data2の場合
data数が1万のdata2のヒストグラムは下図のようになる。
data3の場合
data数が10万のdata3のヒストグラムは下図のようになる。
seabornの場合
コード
解説
Dropdownの設定
Dropdownの設定はmatplotlibの場合と同様に行う。
distplotでヒストグラムを表示
最初にdistplotを入れるからのリストを作成する。
リストの長さが1以上のときにのみaxx.pop().remove()でリスト内の要素を削除する。つまり、図がある場合に図を初期化する。
次に、選択したデータでsns.distplotを作成し、そのdistplotをリストに加えることで図を表示する。
data数1000のdata1のヒストグラムは以下のようになる。
data2の場合
data数10000のdata2のヒストグラムは以下のようになる。
data3の場合
data数100000のdata3のヒストグラムは以下のようになる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント