テキスト(周波数)を入力すると、その場で波形を描画する
%pip install matplotlib numpy ipywidgets
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact, FloatSlider
# 波形を描画する関数
def plot_wave(freq, amplitude):
# データの生成
t = np.linspace(0, 1, 1000) # 0秒から1秒までを1000分割
y = amplitude * np.sin(2 * np.pi * freq * t) # 正弦波の計算公式
# グラフの設定
plt.figure(figsize=(10, 4))
plt.plot(t, y, color='blue')
plt.title(f"Sine Wave: {freq} Hz")
plt.xlabel("Time [s]")
plt.ylabel("Amplitude")
plt.grid(True)
plt.ylim(-5, 5) # y軸の範囲を固定
plt.show()
# インタラクティブなUIの作成
interact(plot_wave,
freq=FloatSlider(value=2.0, min=1.0, max=20.0, step=0.5, description='周波数(Hz):'),
amplitude=FloatSlider(value=1.0, min=0.1, max=5.0, step=0.1, description='振幅:'))