参考:gnuplot で sin x と x のグラフを描く の Python 版。Python の Matplotlib で $y = \sin x $ と $y = x$ のグラフを描く。
$ |x| \ll 1 $ では2つのグラフはほとんど重なっていて $ \sin x \simeq x $ すなわち $\displaystyle \frac{\sin x}{x} \simeq 1$ であることを見て確かめる。
In [1]:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patches as patches
# 以下はグラフを SVG で Notebook にインライン表示させる設定
%config InlineBackend.figure_formats = ['svg']
# グラフのサイズ
plt.rcParams["figure.figsize"] = (6, 6)
$ – \pi \leq x \leq \pi$ の範囲で $y = \sin x$ と $ y = x$ をプロット。
In [2]:
# 次に拡大表示する部分の矩形
fig, ax = plt.subplots()
ax.add_patch(
patches.Rectangle((-1, -1), 2, 2,
edgecolor = 'orange', linewidth = 1,
fill=False
)
)
x = np.linspace(-np.pi, np.pi, 100)
# 横軸縦軸の表示範囲
plt.xlim(-np.pi, np.pi)
plt.ylim(-np.pi, np.pi)
plt.plot(x, np.sin(x), color = "red", linewidth = 2, label="sin x")
plt.plot(x, x, color = "blue", linewidth = 1, label="x")
# 主目盛にグリッド(格子線)
plt.grid(which="major", color="lightgray", ls="--", linewidth=0.5)
# x軸 y軸
plt.axhline(0, color='black', dashes=(5, 5), linewidth=0.5)
plt.axvline(0, color='black', dashes=(5, 5), linewidth=0.5)
plt.legend();
$ – 1 \leq x \leq 1$ の範囲で $y = \sin x$ と $ y = x$ をプロット。
In [3]:
# 次に拡大表示する部分の矩形
fig, ax = plt.subplots()
ax.add_patch(
patches.Rectangle((-0.1, -0.1), 0.2, 0.2,
edgecolor = 'orange', linewidth = 1,
fill=False
)
)
x = np.linspace(-1, 1, 100)
# 横軸縦軸の表示範囲
plt.xlim(-1, 1)
plt.ylim(-1, 1)
plt.plot(x, np.sin(x), color = "red", linewidth = 2, label="sin x")
plt.plot(x, x, color = "blue", linewidth = 1, label="x")
# 主目盛にグリッド(格子線)
plt.grid(which="major", color="lightgray", ls="--", linewidth=0.5)
# x軸 y軸
plt.axhline(0, color='black', dashes=(5, 5), linewidth=0.5)
plt.axvline(0, color='black', dashes=(5, 5), linewidth=0.5)
plt.legend();
$ – 0.1 \leq x \leq 0.1$ の範囲で $y = \sin x$ と $ y = x$ をプロット。ほとんど重なっていて,区別がつきにくい。
In [4]:
x = np.linspace(-0.1, 0.1, 100)
# 横軸縦軸の表示範囲
plt.xlim(-0.1, 0.1)
plt.ylim(-0.1, 0.1)
plt.plot(x, np.sin(x), color = "red", linewidth = 2, label="sin x")
plt.plot(x, x, color = "blue", linewidth = 1, label="x")
# 主目盛にグリッド(格子線)
plt.grid(which="major", color="lightgray", ls="--", linewidth=0.5)
# x軸 y軸
plt.axhline(0, color='black', dashes=(5, 5), linewidth=0.5)
plt.axvline(0, color='black', dashes=(5, 5), linewidth=0.5)
plt.legend();