Matplotlib を使ったラジオボタンによるサイン波の可視化

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

ラジオボタンは、事前に定義されたオプションのグループから1つのオプションを選択できる入力要素の一種です。この実験では、matplotlib ライブラリを使用して、プロットに表示する異なるサイン波の間でユーザーが選択できるラジオボタン付きのビジュアライゼーションを作成します。

VMのヒント

VMの起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebookを使って練習しましょう。

Jupyter Notebookが読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebookの制限により、操作の検証は自動化できません。

学習中に問題に遭遇した場合は、Labbyにお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

この実験に必要なライブラリ - numpymatplotlib をインポートして始めましょう。

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 ライブラリを使ってラジオボタン付きのビジュアライゼーションを作成する方法を学びました。ラジオボタンを使って、ユーザーにプロットに表示する異なるサイン波の間で選択させました。また、ボタンがクリックされたときに呼び出される関数を定義することで、ラジオボタンに機能を追加しました。全体として、この実験は、ユーザーがデータのさまざまな側面を探索できるようにするインタラクティブなビジュアライゼーションを作成するためにラジオボタンをどのように使用できるかを示しています。