こんにちは、JS2IIUです。
Pandasは、Pythonでデータ分析を行うための強力なライブラリです。その中でも、.plotメソッドは、データフレームから簡単にグラフを作成できる便利な機能です。今回は、.plot.hexbinメソッドを使って、ビニングプロットを作成する方法を解説します。
ビニングプロットとは?
ビニングプロットは、散布図に似たグラフですが、2つの変数の関係を六角形のビンで表現します。各ビンは、データ空間を分割した小さな領域を表し、ビン内のデータポイントの数を色で表します。 これにより、データの密度や分布を視覚的に把握することができます。特に、大量のデータポイントを扱う場合に、散布図よりも効果的にデータの傾向を把握できます。
.plot.hexbinメソッドのシグネチャ
Python
DataFrame.plot.hexbin(x, y, C=None, reduce_C_function=None, gridsize=None, **kwargs)パラメータ:
- x: x軸に使用する列名。
- y: y軸に使用する列名。
- C: 色分けに使用する列名。指定すると、各ビンにおけるCの値を集計し、その結果で色分けします。
- reduce_C_function: Cの値を集計する関数。
mean、sum、maxなど。デフォルトはmeanです。 - gridsize: ビンの数を指定する整数。値が大きいほどビンが細かくなります。デフォルトは100です。
- kwargs: その他のキーワード引数。Matplotlibのhexbin()関数に渡されます。
kwargsでよく使うパラメータ:
- figsize: グラフのサイズをタプル(幅, 高さ)で指定します。
- title: グラフのタイトルを指定します。
- xlabel: x軸のラベルを指定します。
- ylabel: y軸のラベルを指定します。
- grid: Trueに設定するとグリッド線を表示します。
- cmap: カラーマップを指定します。Matplotlibで定義されているカラーマップ名を使用します。
プログラム例
Python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# サンプルデータの作成
np.random.seed(0)
data = {
'x': np.random.randn(1000),
'y': np.random.randn(1000)
}
df = pd.DataFrame(data)
# ビニングプロットの作成
df.plot.hexbin(x='x', y='y', gridsize=20, figsize=(8, 6), title='Bining Plot')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
解説:
pandas、matplotlib.pyplot、numpyをインポートします。- 乱数を用いてサンプルデータを作成し、DataFrameに格納します。
df.plot.hexbin()メソッドでビニングプロットを作成します。x='x'でx軸に’x’列を使用することを指定します。y='y'でy軸に’y’列を使用することを指定します。gridsize=20でビンの数を20に指定します。figsize=(8, 6)でグラフのサイズを指定します。title='ビニングプロット'でグラフのタイトルを指定します。
plt.xlabel()でx軸のラベルを指定します。plt.ylabel()でy軸のラベルを指定します。plt.show()でグラフを表示します。
カスタマイズ例
Python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# サンプルデータの作成
np.random.seed(0)
data = {
'x': np.random.randn(1000),
'y': np.random.randn(1000),
'z': np.random.randn(1000),
}
df = pd.DataFrame(data)
# ビニングプロットの作成
df.plot.hexbin(x='x',
y='y',
C='z', # 色分けに'z'列を使用
reduce_C_function=np.mean, # 各ビンで'z'の平均値で色分け
gridsize=20,
figsize=(8, 6),
title='Bining Plot',
cmap='viridis', # カラーマップを'viridis'に変更
grid=True # グリッド線を表示
)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
解説:
C='z'で色分けに’z’列を使用しています。reduce_C_function=np.meanで各ビンにおける’z’の平均値で色分けしています。cmap='viridis'でカラーマップを’viridis’に変更しています。grid=Trueでグリッド線を表示しています。
このように、kwargsで様々なパラメータを指定することで、グラフをカスタマイズすることができます。
参考になるWEBサイト
次回:
次回は、.plot.histメソッドを使ってヒストグラムを作成する方法を解説します。お楽しみに!
今回も少しだけPRです。
Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。
「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。
最後まで読んでいただきありがとうございます。73


コメント