Pythonによる綺麗な散布図の作成方法
Pythonを使って、綺麗な散布図を作る方法です。
seabornライブラリの、scatterplot、jointplot、pairplotを使用します。
使用データの読み込み
この記事では以下のデータを使用して、様々なパターンの散布図を作成してみます。
まずは、以下のようにread_csvを用いてこのデータを読み込ませます。
1 2 3 |
import pandas as pd import seaborn as sns df_score = pd.read_csv("test_score.csv",index_col="名前") |
このタイミングで、グラフを書くためのseabornライブラリもimportしておきます。
scatterplotによる散布図の描画
まずは平面座標上で変数2つの関係性を示す、いわば”一般的な散布図”を作ります。
1 |
sns.scatterplot(data=df_score,x="国語",y="算数") |
これだけです。簡単ですね。
ちなみに、クラスや性別で点の種類を変えることもできます。
引数に「hue」を指定することで色分け、「style」を指定することで点の形の変更、「size」で点の大きさを変えることができます。
では試しに、1組/2組で点の色を変え、男性/女性で点の形を変えてみます。
1 |
sns.scatterplot(data=df_score,x="国語",y="算数",hue="クラス",style="性別") |
このように、点の種類を使い分ければ、さらに分かりやすい図を作ることができます。
jointplotによる散布図の描画
jointplotを使うと、「ヒストグラム」付きの散布図を作れます。
1 |
sns.jointplot(data=df_score,x="国語",y="算数") |
散布図だけだと、点の位置が全く同じデータがたくさんあるとそれが見えないので、ヒストグラムが付いていることでより状況が分かりやすくなりました。
ちなみに、ヒストグラムの本数を変えたければ、以下のような引数を追加します。
1 |
sns.jointplot(data=df_score,x="国語",y="算数",marginal_kws={"bins":10}) |
最適なヒストグラムの本数は、もっとも解釈しやすいものを適宜選んでください。
pairplotによる散布図の描画
最後はpairplotです。
こちらは、データの全ての組み合わせの散布図を一気に書いてくれます。
1 |
sns.pairplot(data=df_score) |
こうすると、すべての2変数間の散布図を一気に確認することができます。
まず、データの全体像をざっと把握したい時などに便利です。
ちなみに、対角線上に出ているのはデータごとのヒストグラムです。
ただし、散布図をたくさん書く以上、データが多ければ多いほど処理時間がかかりますのでご注意ください。
以上、Pythonのseabornを用いた散布図の作成方法3種でした。