三角関数のグラフを描く:数学の美しさを視覚化する方法(feat. Python)

数学の時間、三角関数を学ぶ時、自分でグラフを手で描いたことはありますか?大まかに描くことはできますが、それなりにきれいに描くのは簡単ではありませんよね? 今、Pythonを利用して正確にそのグラフを確認してみましょう。

この記事では、Pythonを使ってsin、cos、tan関数のグラフを簡単かつ正確に描く方法を紹介します。コーディング初心者の方にもわかりやすいステップバイステップガイドと、グラフをカスタマイズするためのヒントも紹介します。このテクニックを習得すれば、数学の課題はもちろん、データビジュアライゼーションプロジェクトにも役立つことでしょう。

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

まず、必要なライブラリをインストールする必要があります。ターミナルで次のコマンドを実行してください。ちなみに!もし、Pythonソースコードを実行するためのVS codeの使い方が分からない場合、 VS CODEのインストール - ウィンドウズ基準 ポストをご覧いただき、フォローしてください。

pip install numpy matplotlib

基本的なコードを書く

以下はsin, cos, tan関数のグラフを描画する基本コードです。

# numpyとmatplotlibライブラリをインポートします。
import numpy as np
import matplotlib.pyplot as plt

# -2πから2πまで1000個の均一な間隔のx値を生成します。
x = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

# 生成されたx値に対してsin、cos、tan関数の値を計算します。
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)

# グラフを描画するFigureオブジェクトを生成し、サイズを設定します。
plt.figure(figsize=(12, 8))

# 三角関数のグラフを描画します。
plt.plot(x, y_sin, label='sin(x)')
plt.plot(x, y_cos, label='cos(x)')
plt.plot(x, y_tan, label='tan(x)')
plt.legend()
plt.show()

上のコードを利用してグラフを描いてみると次のようになります。三角関数のそれぞれがうまく確認できないですね。 そしてx軸の値も一般的に見る値(例えば、π)ではないですね。

삼각함수 그래프 그리기

グラフのカスタマイズ

基本的なグラフにいくつかの要素を追加して、より見栄えを良くしてみましょう:

# numpyとmatplotlibライブラリをインポートします。
import numpy as np
import matplotlib.pyplot as plt

# -2πから2πまで1000個の均一な間隔のx値を生成します。
x = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

# 生成されたx値に対してsin、cos、tan関数の値を計算します。
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)

# x軸にπ単位で目盛りを表示する関数を定義します。
def set_pi_ticks(ax):
    # -2πから2πまでπ/2間隔で目盛りの位置を設定します。
    ax.set_xticks(np.range(-2*np.pi, 2.1*np.pi, np.pi/2))
    # 各スケールに対応するラベルを設定します。LaTeX形式でπを表現します。
    ax.set_xticklabels([r'$-2\pi$', r'$-3\pi/2$', r'$-\pi$', r'$-\pi/2$', '0'、
                        r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])

# グラフのサイズを設定します(横12インチ、縦8インチ)。
plt.figure(figsize=(12, 8))

# 現在の軸(axis)オブジェクトを取得します。
ax = plt.gca()

# sin, cos, tan関数のグラフを描画します。それぞれ異なる色で表示され、凡例に表示される名前を指定します。
plt.plot(x, y_sin, label='sin(x)')
plt.plot(x, y_cos, label='cos(x)')
plt.plot(x, y_tan, label='tan(x)')

# グラフのタイトルを設定します。
plt.title('Trigonometric Functions')

# x軸とy軸のラベルを設定します。
plt.xlabel('x')
plt.ylabel('y')

# x軸(y=0)とy軸(x=0)を黒の実線で描画します。
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)

# グラフにグリッド線を追加します。
plt.grid(True)

# 凡例を表示します。
plt.legend()

# x軸にπ単位の目盛りを表示します。
set_pi_ticks(ax)

# y軸の範囲を-3から3に制限します。
plt.ylim(-3, 3)

# グラフのレイアウトを自動的に調整します。
plt.tight_layout()

# グラフを画面に表示します。
plt.show()
삼각함수 그래프 그리기

個別グラフの描画

各関数を別々のサブプロットに描くと、より詳細に見ることができます:

# numpyとmatplotlibライブラリをインポートします。
import numpy as np
import matplotlib.pyplot as plt

# -2πから2πまで1000個の均一な間隔のx値を生成します。
x = np.linspace(-2 * np.pi, 2 * np.pi, 1000)

# 生成されたx値に対してsin、cos、tan関数値を計算します。
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)

# x軸にπ単位で目盛りを表示する関数を定義します。
def set_pi_ticks(ax):
    # -2πから2πまでπ/2間隔で目盛りの位置を設定します。
    ax.set_xticks(np.range(-2*np.pi, 2.1*np.pi, np.pi/2))
    # 各スケールに対応するラベルを設定します。LaTeX形式でπを表現します。
    ax.set_xticklabels([r'$-2\pi$', r'$-3\pi/2$', r'$-\pi$', r'$-\pi/2$', '0'、
                        r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])

# 全体のグラフのサイズを設定します(横12インチ、縦12インチ)。
plt.figure(figsize=(12, 12))

# sin関数グラフ (最初のサブプロット)を作成します。
ax1 = plt.subplot(3, 1, 1) # 3行1列のグリッドの最初の位置にサブプロットを作成します。
plt.plot(x, y_sin, label='sin(x)')  # sin関数のグラフを描きます。
plt.title('Sin Function') # サブプロットのタイトルを設定します。
plt.ylabel('sin(x)')  # y軸のラベルを設定します。
plt.grid(True) # 格子線を追加します。
plt.legend() # 凡例を表示します。
set_pi_ticks(ax1) # x軸にπ単位の目盛りを表示します。

# cos関数グラフ (2番目のサブプロット)
ax2 = plt.subplot(3, 1, 2) # 3行1列のグリッドの2番目の位置にサブプロットを作成します。
plt.plot(x, y_cos, label='cos(x)', color='orange') # cos関数グラフをオレンジ色で描画します。
plt.title('Cos Function')
plt.ylabel('cos(x)')
plt.grid(True)
plt.legend()
set_pi_ticks(ax2)

# tan関数グラフ (3番目のサブプロット)
ax3 = plt.subplot(3, 1, 3) # 3行1列のグリッドの3番目の位置にサブプロットを作成します。
plt.plot(x, y_tan, label='tan(x)', color='green') # tan関数グラフを緑色で描画します。
plt.title('Tan Function')
plt.xlabel('x') # x軸のラベルを設定します(一番下のサブプロットにのみ表示)。
plt.ylabel('tan(x)')
plt.ylim(-10, 10) # y軸の範囲を-10から10に制限します(tan関数の発散を考慮)。
plt.grid(True)
plt.legend()
set_pi_ticks(ax3)

# サブプロット間の間隔を自動的に調整します。
plt.tight_layout()

# グラフを画面に表示します。
plt.show()
삼각함수 그래프 그리기

整理する

今回の記事では、PythonとMatplotlibを使って複雑な数学関数を簡単に視覚化する方法を紹介しました。 このような技術を応用すれば、様々な数学的概念をより簡単に理解し、説明することができるでしょう。

基本関数ではなく、sin(2x)など、もう少し拡張された形式のグラフも描いてみてください。頭の中だけで考えるより、より確実にそのグラフに対する感覚が身に付くはずです! Just Try it!

類似の投稿