指定範囲を塗り潰す関数
matplotlib.axes.Axes.axvspan()
Axes.axvspan(xmin, xmax) を使うと、x = xmin から x = xmax までの範囲を塗り潰すことができます。
# PYTHON_MATPLOTLIB_FILL_01-1 import numpy as np import matplotlib.pyplot as plt # FigureとAxesを作成 fig = plt.figure(figsize = (6, 6)) ax = fig.add_subplot(111) # 軸範囲を設定 ax.set_xlim(0, 10) ax.set_ylim(0, 10) # 3≦x≦6の範囲を塗り潰す ax.axvspan(3, 6, color = "coral") plt.show()
オプション引数 ymin と ymax で垂直方向の塗り潰し範囲を指定できますが、Axes.set_ylim() の設定内容に関わらず、0~1 の相対座標で指定します。
# PYTHON_MATPLOTLIB_FILL_01-2 # FigureとAxesを作成 fig = plt.figure(figsize = (6, 6)) ax = fig.add_subplot(111) # 軸範囲を設定 ax.set_xlim(0, 10) ax.set_ylim(0, 10) # 0≦x≦6,2≦y≦6の範囲を塗り潰す ax.axvspan(3, 6, 0.2, 0.6, color = "coral") plt.show()
matplotlib.axes.Axes.axhspan()
Axes.axhspan(ymin, ymax) は y = ymin から y = ymax までの範囲を塗り潰します。
# PYTHON_MATPLOTLIB_FILL_02-1 import numpy as np import matplotlib.pyplot as plt # FigureとAxesを作成 fig = plt.figure(figsize = (6, 6)) ax = fig.add_subplot(111) # 軸範囲を設定 ax.set_xlim(0, 10) ax.set_ylim(0, 10) # 4≦y≦8の範囲を塗り潰す ax.axhspan(4, 8, color = "olive", alpha = 0.5) plt.show()
オプション引数 xmin と xmax で水平方向の塗り潰し範囲を指定できますが、Axes.set_xlim() の設定内容とは無関係に、0~1 の相対座標で指定することになります。
# PYTHON_MATPLOTLIB_FILL_02-2 # FigureとAxesを作成 fig = plt.figure(figsize = (6, 6)) ax = fig.add_subplot(111) # 軸範囲を設定 ax.set_xlim(0, 10) ax.set_ylim(0, 10) # 2≦x≦8,4≦y≦8の範囲を塗り潰す ax.axhspan(4, 8, 0.2, 0.8, color = "olive", alpha = 0.5) plt.show()
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス) 新品価格 | ![]() |

matplotlib.axes.Axes.fill_between()
Axes.fill_between(x, y1, y2) は (x, y1) と (x, y2) の間を塗り潰します。この関数は 2 つの曲線 $y=f(x)$ と $y=g(x)$ に囲まれた領域を図示する場合などに用いられます。以下に例として、$\sin x$ と $\cos x$ に囲まれた領域を図示するコードを掲載します。
# PYTHON_MATPLOTLIB_FILL_03 import numpy as np import matplotlib.pyplot as plt # 円周率を定義 pi = np.pi # プロットするデータを用意 x = np.arange(0, 3*pi, 0.1) y1 = np.sin(x) y2 = np.cos(x) # FigureとAxesの設定 fig = plt.figure(figsize = (8, 6)) ax = fig.add_subplot(111) ax.grid() ax.set_xlabel("x", fontsize = 14) ax.set_ylabel("y", fontsize = 14) ax.set_xlim(0.0, 2 * pi) ax.set_ylim(-1.5, 1.5) ax.set_xticks([0, pi/2, pi, 3*pi/2, 2*pi]) ax.set_xticklabels(["0", "$\pi/2$", "$\pi$", "$3\pi/2$", "$2\pi$"], fontsize = 12) # Axesにグラフをプロット ax.plot(x, y1, color = "blue") ax.plot(x, y2, color = "red") # y1とy1の間をライム色で塗り潰す ax.fill_between(x, y1, y2, facecolor='lime', alpha=0.5) plt.show()
コメントを書く