matplotlibのpyplot.fill_between()
を使えば、指定の範囲を塗りつぶせます。
特定領域の塗りつぶし
ひとまず、0~5minの範囲に限定して、下図のようなグラフが書きたいんです。
Figure1は以下のコードから描けます。
12行目のfill_between()
のwhere=()
が塗りつぶしの範囲を決めます。
where
に何も記述しなければ、\(0\leq t \leq 30, \quad y\leq a\cdot exp(dt)\)が塗りつぶされます。
plt.fill_between(t, conc, 3, where=((1 <=t)&(t<=5))
と記述すれば、\(1\leq t \leq 5, \quad 3 \leq y\leq a\cdot exp(dt)\)が塗りつぶされます。
focecolor
が塗りつぶしの色、alpha
が透明度を調整します。
塗りつぶすカラーは、簡単なものであれば、{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}
で指定できます。
それぞれの文字は、blue, green, red, cyan, magenta, yellow, black, whiteを指定します。
それぞれの色の頭文字のようですが、blackはblueとかぶるから”k”なんですね!
パワポ、エクセルで編集もいいですが、個人的には慣れるとpythonで書いてしまうほうが速いです。使い慣れてください!
この記事は以上です。
最後まで読んでいただきありがとうございました。
参考ページ
(1) matplotlib ver3.1.2, “Filling the area between lines”(7/20/2021アクセス)
(2) matplotlib ver3.1.2, “matplotlib.pyplot.annotate”(7/20/2021アクセス)
(3) matplotlib ver3.4.2, “matplotlib.colors”(7/20/2021アクセス)
化学反応速度に関するグラフがあるんですが、pythonを使って指定範囲を塗りつぶしたいです。どうすれば良いでしょう?