三角関数のグラフをPythonのMatplotlibで描画する
グラフの概要
三角関数のいろいろな計算を、視覚的に確認するためにPythonのMatplotlibを使いグラフを作成してみます。簡単なグラフをつくるのであればすぐできてしまいますが、きれいにしようとすると少し工夫が必要です。とりあえず次のようなグラフを描いてみました。
import numpy as np
import matplotlib.pyplot as plt
N = 100
theta = np.linspace(-2*np.pi, 2*np.pi, N)
sin_ = np.sin(theta)
cos_ = np.cos(theta)
fig ,ax = plt.subplots()
plt.rcParams["figure.figsize"] = (6, 4)
ax.set_title(r'$\sin \theta$と$\cos \theta$の関係', loc = 'center', pad=30, fontname="MS Gothic", fontsize = 24)
ax.plot(theta, sin_, color='r', linewidth=1,label= r'$\sin \theta$')
ax.plot(theta, cos_, color='b', linewidth=1,label= r'$\cos \theta$')
ax.set_xticks([-2*np.pi, -np.pi,0, np.pi, 2*np.pi])
ax.set_xticklabels( [ '-2π', '-π', '0', 'π', '2π'])
ax.set_xlabel(r'$\theta$', loc = 'right', labelpad=-30)
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position(('data', 0))
ax.spines["right"].set_color("none")
ax.spines["top"].set_color("none")
ax.legend( bbox_to_anchor=(1, 0.2))
plt.show()
単位をπにする
MatplotlibにはMATLABスタイルとオブジェクト指向スタイルがあります。ここでは、1つの描画オブジェクトの中にサブプロットという複数のグラフを入れ込むことができるなど、良いことが多いので、後者を使います。
3,4行目で、単位をradianとし、$${-2\pi}$$から$${2\pi}$$をlinspaceを100の区間に区切っています。
ここで、色はsinは赤、cosは青で、判例で表示するためlatexで表示方法を指定します。
軸の設定
軸の設定をしないと、次のようなさえないグラフになってしまいます。
そこで、12~13行目のようにax.set_xticks([-2np.pi, -np.pi,0, np.pi, 2np.pi]) をax.set_xticklabels( [ '-2π', '-π', '0', 'π', '2π'])対比させることにより、x軸の単位を$${\pi}$$にすることができます。
ここで、14行目で軸ラベルをθとし、labelpad=-30で位置を調整します。
つぎに、14~15行目でx軸とy軸を原点で交わるようにします。このとき、グラフの右と上だけ境界線が表示されてしまい見苦しいので、16,17行目で無色にしてします。
最後に凡例をグラフの外側にします。
この記事が気に入ったらサポートをしてみませんか?