Matplotlibのpyplotでステップ曲線の下の領域を塗りつぶす方法
はじめに
Matplotlibのpyplotを使って、ステップ曲線(階段状の折れ線)の下の領域を塗りつぶす方法を紹介します。ポイントは、fill_between()メソッドのstep引数と、plot()メソッドのdrawstyle引数を組み合わせることです。これにより、塗りつぶし領域と線が同じステップ形状になり、見た目が一致したグラフを作成できます。
手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- numpyを使ってデータ点 x、y1、y2 を作成します。
- 曲線の下の領域を塗りつぶすために、fill_between()メソッドにxとyを渡し、step="pre" を指定します。
- drawstyle="steps" を指定した plot()メソッドで、(x, y1) と (x, y2) の線を描画します。
- show()メソッドで図を表示します。
step引数について
step引数には "pre"、"post"、"mid" のいずれかを指定できます。"pre" は次のx値まで現在のy値を保持する形状、"post" は前のx値から現在のy値へ変化する形状、"mid" は中間点で変化する形状になります。plot()側のdrawstyleも同じ種類(steps / steps-post / steps-mid)を選ぶことで、線と塗りつぶしの形状を揃えられます。
コード例
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-10, 10, 100) y1 = np.sin(x) y2 = np.cos(x) plt.fill_between(x, y1, step="pre", alpha=0.4) plt.fill_between(x, y2, step="pre", alpha=0.4) plt.plot(x, y1, drawstyle="steps") plt.plot(x, y2, drawstyle="steps") plt.show()
実行結果

このコードを実行すると、sin波とcos波のステップ曲線が半透明(alpha=0.4)で塗りつぶされ、下図のように階段状の領域が視覚的に表現されます。
-
MatplotlibとSeabornのカウントプロットで表示するグループ数を制限する方法
Seabornのカウントプロット(countplot)で表示されるグループの数を制限したい場合、countplot()メソッドの引数で使用できる変数group_countを活用すると簡単に実現できます。手順図(figure)と2つのサブプロットを作成します。Pandasを使って、複数のキー(列)を持つデータフレームを作成します。グループ数を制限するための変数group_countを初期化します。countplot()メソッドを使用して、各カテゴリビンごとの観測値の数を棒グラフとして表示します。このとき、order引数にgroup_countを適用することで、表示するグループ数を制御します。サブ
-
matplotlibの円グラフで左側のラベルを非表示・削除する方法
matplotlibで円グラフ(パイチャート)を作成すると、グラフの左側に意図しないラベルや余白が表示されることがあります。これはy軸ラベルが自動的に描画されるためです。この不要なラベルを削除するには、plt.ylabel() のように空文字列を指定するのが最も簡単な方法です。手順時間(hours)、アクティビティ(activities)、色(colors)のリストを作成します。pie() メソッドを使用して円グラフを描画します。左側のラベルを非表示にするために、plt.ylabel() で空文字列を設定します。サンプルコードimport matplotlib.pyplot as plt #