【Pandas】.plot.kdeでKDEプロットを作成する

Pandas
この記事は約6分で読めます。

こんにちは、JS2IIUです。

Pandasは、Pythonでデータ分析を行うための強力なライブラリです。その中でも、.plotメソッドは、データフレームから簡単にグラフを作成できる便利な機能です。今回は、.plot.kdeメソッドを使って、KDEプロットを作成する方法を解説します。

KDEプロットとは?

KDEプロット(Kernel Density Estimation plot)は、カーネル密度推定を用いてデータの確率密度関数を推定し、滑らかな曲線で表示するグラフです。ヒストグラムのようにデータの分布を視覚化する方法ですが、ヒストグラムよりも滑らかで、データの分布をより正確に表現することができます。 .plot.densityと同じくカーネル密度推定プロットを作成できますが、.plot.kde.plot.densityのエイリアスなので、どちらを使っても同じ結果が得られます。

.plot.kdeメソッドのシグネチャ

Python
DataFrame.plot.kde(bw_method=None, ind=None, **kwargs)

パラメータ:

  • bw_method: バンド幅を指定する方法。数値、str、またはcallableを指定できます。デフォルトはNoneで、scipyのgaussian_kde関数で推定されます。
  • ind: x軸の値を指定する配列。デフォルトはNoneで、自動的に決定されます。
  • kwargs: その他のキーワード引数。Matplotlibのplot()関数に渡されます。

kwargsでよく使うパラメータ:

  • figsize: グラフのサイズをタプル(幅, 高さ)で指定します。
  • title: グラフのタイトルを指定します。
  • xlabel: x軸のラベルを指定します。
  • ylabel: y軸のラベルを指定します。
  • grid: Trueに設定するとグリッド線を表示します。
  • xlim: x軸の範囲をタプル(最小値, 最大値)で指定します。
  • ylim: y軸の範囲をタプル(最小値, 最大値)で指定します。

プログラム例

Python
import pandas as pd
import matplotlib.pyplot as plt

# Sample data creation
data = {
    'Test Scores': [70, 80, 90, 60, 75, 85, 95, 65, 70, 80, 90, 75, 85, 95]
}
df = pd.DataFrame(data)

# KDE plot creation
df['Test Scores'].plot.kde(figsize=(8, 6), title='Distribution of Test Scores')
plt.xlabel('Score')
plt.ylabel('Density')
plt.show()

解説:

  1. pandasmatplotlib.pyplotをインポートします。
  2. サンプルデータを作成し、DataFrameに格納します。
  3. df['Test Scores'].plot.kde()メソッドでKDEプロットを作成します。
    • figsize=(8, 6)でグラフのサイズを指定します。
    • title='試験結果の分布'でグラフのタイトルを指定します。
  4. plt.xlabel()でx軸のラベルを指定します。
  5. plt.ylabel()でy軸のラベルを指定します。
  6. plt.show()でグラフを表示します。

カスタマイズ例

Python
import pandas as pd
import matplotlib.pyplot as plt

# Sample data creation
data = {
    'Test Scores': [70, 80, 90, 60, 75, 85, 95, 65, 70, 80, 90, 75, 85, 95]
}
df = pd.DataFrame(data)

# KDE plot creation
df['Test Scores'].plot.kde(figsize=(8, 6),
                           title='Distribution of Test Scores',
                           bw_method=0.5,  # Specify bandwidth
                           xlim=(50, 100),  # Specify x-axis range
                           grid=True  # Display grid lines
                           )
plt.xlabel('Score')
plt.ylabel('Density')
plt.show()

解説:

  • bw_method=0.5でバンド幅を0.5に設定しています。
  • xlim=(50, 100)でx軸の範囲を50から100に指定しています。
  • grid=Trueでグリッド線を表示しています。

このように、kwargsで様々なパラメータを指定することで、グラフをカスタマイズすることができます。

参考になるWEBサイト

次回:

次回は、.plot.lineメソッドを使って折れ線グラフを作成する方法を解説します。お楽しみに!

今回も少しだけPRです。

Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。

「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。

最後まで読んでいただきありがとうございます。73

コメント

タイトルとURLをコピーしました