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()
塗りつぶす色を変えることができました。