1. ホーム
  2. パイソン

[解決済み】pandasを使用して相関行列をプロットする

2022-03-30 04:40:58

質問

膨大な数の特徴量を持つデータセットがあるため、相関行列の分析が非常に難しくなっています。以下のような相関行列をプロットしたい。 dataframe.corr() という関数があります。この行列をプロットするためにpandasライブラリによって提供される組み込み関数はありますか?

どのように解決するのですか?

を使用することができます。 pyplot.matshow() から matplotlib :

import matplotlib.pyplot as plt

plt.matshow(dataframe.corr())
plt.show()


編集する

コメントで、軸の目盛りのラベルを変更したいとの要望がありました。ここでは、より大きな図サイズに描かれ、データフレームにマッチした軸ラベルと、カラースケールを解釈するためのカラーバー凡例があるデラックス版を紹介します。

ラベルの大きさや回転を調整する方法を盛り込み、カラーバーとメインの図が同じ高さになるような図比にしています。


EDIT 2: df.corr()メソッドが数値以外の列を無視するため。 .select_dtypes(['number']) xとyのラベルを定義するときに、ラベルの不要なシフトを避けるために使用する必要があります(以下のコードに含まれています)。

f = plt.figure(figsize=(19, 15))
plt.matshow(df.corr(), fignum=f.number)
plt.xticks(range(df.select_dtypes(['number']).shape[1]), df.select_dtypes(['number']).columns, fontsize=14, rotation=45)
plt.yticks(range(df.select_dtypes(['number']).shape[1]), df.select_dtypes(['number']).columns, fontsize=14)
cb = plt.colorbar()
cb.ax.tick_params(labelsize=14)
plt.title('Correlation Matrix', fontsize=16);