こんにちは、JS2IIUです。
Pandasは、Pythonでデータ分析を行うための強力なライブラリです。その中でも、.plotメソッドは、データフレームから簡単にグラフを作成できる便利な機能です。今回は、.plot.scatterメソッドを使って、散布図を作成する方法を解説します。
散布図とは?
散布図は、2つの変数の関係を視覚的に表現するグラフです。それぞれのデータポイントを、x軸とy軸に対応する値を持つ点としてプロットします。これにより、2つの変数の間に相関関係があるかどうか、どのような関係があるのかを把握することができます。
.plot.scatterメソッドのシグネチャ
Python
DataFrame.plot.scatter(x, y, s=None, c=None, **kwargs)パラメータ:
- x: x軸に使用する列名。
- y: y軸に使用する列名。
- s: 各データポイントのサイズを指定する数値または配列。デフォルトは20です。
- c: 各データポイントの色を指定する列名、数値、配列、またはカラーマップ。デフォルトは’blue’です。
- kwargs: その他のキーワード引数。Matplotlibのscatter()関数に渡されます。
kwargsでよく使うパラメータ:
- figsize: グラフのサイズをタプル(幅, 高さ)で指定します。
- title: グラフのタイトルを指定します。
- xlabel: x軸のラベルを指定します。
- ylabel: y軸のラベルを指定します。
- grid: Trueに設定するとグリッド線を表示します。
- xlim: x軸の範囲をタプル(最小値, 最大値)で指定します。
- ylim: y軸の範囲をタプル(最小値, 最大値)で指定します。
- marker: データポイントにマーカーを表示します。’o’(円)、’s’(四角)、’^’(三角)など、Matplotlibで定義されているマーカーを使用できます。
- colormap: カラーマップを指定します。Matplotlibで定義されているカラーマップ名を使用します。
プログラム例
Python
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# サンプルデータの作成
np.random.seed(0)
data = {
'Height': np.random.normal(170, 10, 100),
'Weight': np.random.normal(60, 10, 100)
}
df = pd.DataFrame(data)
# 散布図の作成
df.plot.scatter(x='Height', y='Weight', figsize=(8, 6), title='Height vs Weight')
plt.xlabel('Height (cm)')
plt.ylabel('Weight (kg)')
plt.show()
解説:
pandas、matplotlib.pyplot、numpyをインポートします。- 乱数を用いてサンプルデータを作成し、DataFrameに格納します。
df.plot.scatter()メソッドで散布図を作成します。x='Height'でx軸に’身長’列を使用することを指定します。y='Weight'でy軸に’体重’列を使用することを指定します。figsize=(8, 6)でグラフのサイズを指定します。title='Height vs Weight'でグラフのタイトルを指定します。
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 = {
'Height': np.random.normal(170, 10, 100),
'Weight': np.random.normal(60, 10, 100),
'Age': np.random.randint(20, 60, 100)
}
df = pd.DataFrame(data)
# 散布図の作成
df.plot.scatter(x='Height',
y='Weight',
s=df['Age'], # 年齢に応じて点のサイズを変更
c='Age', # 年齢に応じて色分け
colormap='viridis', # カラーマップを'viridis'に変更
figsize=(8, 6),
title='Height vs Weight',
marker='s', # マーカーを四角に変更
grid=True # グリッド線を表示
)
plt.xlabel('Height (cm)')
plt.ylabel('Weight (kg)')
plt.show()
解説:
s=df['Age']で年齢に応じて点のサイズを変更しています。c='Age'で年齢に応じて色分けしています。colormap='viridis'でカラーマップを’viridis’に変更しています。marker='s'でマーカーを四角に変更しています。grid=Trueでグリッド線を表示しています。
このように、kwargsで様々なパラメータを指定することで、グラフをカスタマイズすることができます。
参考になるWEBサイト
これで、Pandasの.plotメソッドを使ったグラフ作成の全11回のシリーズ記事が完結しました。これらの記事が、皆様のデータ分析に役立つことを願っています。
今回も少しだけPRです。
Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。
「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。
最後まで読んでいただきありがとうございます。73


コメント