SeabornのKDEプロットで中央値を可視化する方法
SeabornのKDE(カーネル密度推定)プロット上にデータの中央値を示すには、以下の手順で実現できます。KDEプロットは分布の形状を滑らかに表現しますが、そのままでは代表値が分かりにくいため、垂直線で中央値を重ねて描画すると分布の中心がひと目で把握できるようになります。
手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- NumPyを使ってランダムなデータを作成します。
- 作成したデータの中央値を計算します。
- kdeplot() を使って塗りつぶし付きのKDEプロットを描画します。
- axvline() メソッドを使って、中央値の位置に垂直線を引きます。
- show() メソッドで図を表示します。
コード例
import numpy as np import seaborn as sns from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = np.random.randn(30) xmedian = np.median(data) k = sns.kdeplot(x=data, shade=True) plt.axvline(xmedian, c='red') plt.show()
出力結果

コードのポイント解説
np.random.randn(30) は平均0・標準偏差1の正規分布に従う乱数を30個生成します。np.median(data) でその中央値を求め、変数 xmedian に格納しています。
sns.kdeplot() の shade=True オプションにより、密度曲線の下側が塗りつぶされ、分布が視覚的に理解しやすくなります。なお、Seabornの新しいバージョンでは shade の代わりに fill=True を使用することが推奨されています。
最後に plt.axvline(xmedian, c='red') で赤色の垂直線を中央値の位置に描画することで、密度分布のどのあたりに中央値が位置しているのかを直感的に確認できます。この手法は平均値や特定のパーセンタイルを表示する場合にも応用でき、統計的な洞察を加えたグラフ作成に役立ちます。
-
Seabornで2つのグラフを横に並べてプロットする方法(Matplotlib)
データ分析では、複数のグラフを1つの図の中に並べて比較できると非常に便利です。この記事では、SeabornとMatplotlibを組み合わせて、2つのグラフを横並び(1行2列)で表示する方法を解説します。 実装の流れ 2つのグラフを並べて描画するには、以下の手順を実行します。 plt.subplots(1, 2) を使い、figureサイズ(7, 7)で1行2列のサブプロットを作成します。 Pandasを使って、col1 と col2 のキーを持つデータフレームを作成します。 countplot() メソッドを使用し、カテゴリごとの観測値の件数を棒グラフで可視化します。 subplots_a
-
Pythonで時系列データをプロットする方法をわかりやすく解説
Pythonのmatplotlibを使えば、時系列データ(日時を軸にしたデータ)を簡単にグラフ化できます。ここでは、datetimeオブジェクトを含むデータを折れ線グラフとして描画する基本的な手順を紹介します。 時系列プロットの基本手順 numpyを使用して、x軸(日時データ)とy軸(数値データ)を作成します。 plot()メソッドを使って、作成したx・yのデータをプロットします。 show()メソッドを実行して、図を画面に表示します。 コード例 以下のサンプルコードでは、2021年1月1日の0時から23時までの24個の日時データを生成し、それに対応するランダムな数値をy軸としてプロットし