【こつこつPython】Pythonで2つのグラフを塗りつぶす方法|matplotlib.pyplot.fill_between

Pythonで2つの関数の間を塗りつぶす方法です。
使用するのはPythonのmatplotlibライブラリのfill_between関数です。

import matplotlib.pyplot as plt
import numpy as np

まず、sinとcosのグラフを作成しましょう。
最初に、numpyライブラリのlinspace関数を使用して、x座標を作成します。
次に、変数y1にsinの関数、変数y2にcosの関数を代入します。
そして、plot関数を使用して、sinとcosのグラフを表示してみましょう。
実行します。

x = np.linspace(0, 5, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()

2つの関数のグラフを作成できました。
次に、fill_between関数を使用して、2つの関数の間を塗りつぶしてみましょう。
引数にx座標の配列、1つ目の関数、2つ目の関数を指定します。
実行します。

plt.plot(x, y1)
plt.plot(x, y2)
plt.fill_between(x, y1, y2)
plt.show()

2つの関数を間を塗りつぶすことができました。

また、塗りつぶす範囲を指定できます。
引数whereに塗りつぶしたい範囲の条件を指定します。
y1の方が大きい値の範囲を指定してみましょう。
実行します。

plt.plot(x, y1)
plt.plot(x, y2)
plt.fill_between(x, y1, y2, where=y1>y2)
plt.show()

y1の方が大きい値の範囲のみを塗りつぶすことができました。

さらに、塗りつぶす色を変えることもできます。
引数colorに塗りつぶしたい色を指定します。
実行します。

plt.plot(x, y1)
plt.plot(x, y2)
plt.fill_between(x, y1, y2, where=y1>y2, color="lightgray")
plt.show()

塗りつぶす色を変えることができました。

関連メソッド

【こつこつPython】Pythonで多角形を作成する方法|matplotlib.pyplot.fill