はじめに
ラジオボタンは、事前に定義されたオプションのグループから 1 つのオプションを選択できる入力要素の一種です。この実験では、matplotlib ライブラリを使用して、プロットに表示する異なるサイン波の間でユーザーが選択できるラジオボタン付きのビジュアライゼーションを作成します。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
この実験に必要なライブラリ - numpy と matplotlib をインポートして始めましょう。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import RadioButtons
データを作成する
次に、プロットで使用するデータを作成します。numpy ライブラリを使って、異なる周波数の 3 つの異なるサイン波を作成します。
t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(8*np.pi*t)
プロットとラジオボタンを作成する
次に、プロットとラジオボタンを作成します。プロットを作成するには subplots() 関数を、ラジオボタンを作成するには RadioButtons() 関数を使用します。
fig, ax = plt.subplots()
l, = ax.plot(t, s0, lw=2, color='red')
fig.subplots_adjust(left=0.3)
axcolor = 'lightgoldenrodyellow'
rax = fig.add_axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, ('1 Hz', '2 Hz', '4 Hz'),
label_props={'color': 'cmy', 'fontsize': [12, 14, 16]},
radio_props={'s': [16, 32, 64]})
ラジオボタンに機能を追加する
次に、on_clicked() 関数を使ってラジオボタンに機能を追加します。ラジオボタンがクリックされたときに呼び出される 2 つの関数 - hzfunc() と colorfunc() - を定義します。
def hzfunc(label):
hzdict = {'1 Hz': s0, '2 Hz': s1, '4 Hz': s2}
ydata = hzdict[label]
l.set_ydata(ydata)
fig.canvas.draw()
radio.on_clicked(hzfunc)
rax = fig.add_axes([0.05, 0.4, 0.15, 0.15], facecolor=axcolor)
radio2 = RadioButtons(
rax, ('red', 'blue', 'green'),
label_props={'color': ['red', 'blue', 'green']},
radio_props={
'facecolor': ['red', 'blue', 'green'],
'edgecolor': ['darkred', 'darkblue', 'darkgreen'],
})
def colorfunc(label):
l.set_color(label)
fig.canvas.draw()
radio2.on_clicked(colorfunc)
rax = fig.add_axes([0.05, 0.1, 0.15, 0.15], facecolor=axcolor)
radio3 = RadioButtons(rax, ('-', '--', '-.', ':'))
def stylefunc(label):
l.set_linestyle(label)
fig.canvas.draw()
radio3.on_clicked(stylefunc)
プロットを表示する
最後に、show() 関数を使ってプロットを表示します。
plt.show()
まとめ
この実験では、matplotlib ライブラリを使ってラジオボタン付きのビジュアライゼーションを作成する方法を学びました。ラジオボタンを使って、ユーザーにプロットに表示する異なるサイン波の間で選択させました。また、ボタンがクリックされたときに呼び出される関数を定義することで、ラジオボタンに機能を追加しました。全体として、この実験は、ユーザーがデータのさまざまな側面を探索できるようにするインタラクティブなビジュアライゼーションを作成するためにラジオボタンをどのように使用できるかを示しています。