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

こつこつPython

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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト