Python の matplotlib で曲線を描く基本は次のようにします:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi) plt.plot(x, np.sin(x))
詳しく説明すると、np.linspace(start, stop, num)
は、start
から stop
まで両端を含む num
個の等間隔な値を返します。例えば np.linspace(1, 2, 5)
は array([1., 1.25, 1.5, 1.75, 2.])
を返します。上の例のように num
を省略すると num
= 50 になります(49等分して50点を返す)。もっと滑らかに描きたい場合は、適当に大きな値にします。
コサインも追加してみましょう(Google Colab や Jupyter Notebook なら上のセルに追加します):
plt.plot(x, np.cos(x))
凡例(レジェンド)を入れましょう:
plt.legend(["sin x", "cos x"])
タンジェントも加えてみましょう(凡例も置き換えます):
plt.plot(x, np.tan(x)) plt.legend(["sin x", "cos x", "tan x"])
あれれ,おかしくなりましたか。ちょっと工夫してみましょう:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) eps = 0.4 x1 = np.linspace(0, np.pi/2 - eps) x2 = np.linspace(np.pi/2 + eps, 3*np.pi/2 - eps) x3 = np.linspace(3*np.pi/2 + eps, 2*np.pi) plt.plot(x1, np.tan(x1), color="C2") plt.plot(x2, np.tan(x2), color="C2") plt.plot(x3, np.tan(x3), color="C2") plt.legend(["sin x","cos x", "tan x"]) plt.axhline(linewidth=0.5, color="black") # x軸
色は "C0"
(青)、"C1"
(橙)、"C2"
(緑)と自動で変わっていきますが、タンジェントだけ3個に分けて描いているので、同じ色(ここでは "C2"
)に設定しました。