曲線を描く

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")に設定しました。