質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

745閲覧

python Scatter plotの図の右上に相関係数を載せたい。

Ryosuke0524

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/05/10 16:58

実現したいこと

相関関係を示すために、pairplotでplot図を書きましたが、それだけだとわからないので、図の右上に相関係数を提示したいです。

発生している問題・エラーメッセージ

pairplotで一斉にグラフを輩出しましたが、これだけだとプロットだけで、
相関係数は出ませんでした。図の右上にそれぞれ相関係数が出れば嬉しいです。

該当のソースコード

import numpy as np import pandas as pd from sklearn.datasets import load_boston data = load_boston() df = pd.DataFrame(data=data.data, columns=data.feature_names) df['TARGET'] = pd.DataFrame(data=data.target) print(df.head()) # 初めの5レコードを表示

python

1df2 = df.loc[:,['RM', 'RAD', 'LSTAT', 'TARGET']] 2import matplotlib.pyplot as plt 3import seaborn as sns 4 5sns.pairplot(df2) 6plt.show()

試したこと

pairplotで図を一斉に描きましたが、それぞれの図に相関係数を一気に書く方法があれば
教えていただけませんでしょうか?
また、p値も一緒に乗せられるとなお嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

seaborn.FacetGrid.map — seaborn 0.12.2 documentation で各プロットに相関係数と p-value を描画(annotate)します。

python

1import matplotlib.pyplot as plt 2import seaborn as sns 3from scipy.stats import pearsonr 4 5def corrfunc(x, y, **kwargs): 6 corr, pval = pearsonr(x, y) 7 plt.gca().annotate(f'{corr:.3f}', xy=(.7, .9), xycoords=plt.gca().transAxes, color='red') 8 plt.gca().annotate(f'{pval:.3e}', xy=(.7, .8), xycoords=plt.gca().transAxes, color='blue') 9 10pair = sns.pairplot(df2) 11pair.map(corrfunc) 12 13plt.show()

イメージ説明

投稿2023/05/10 18:23

melian

総合スコア21187

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryosuke0524

2023/05/11 01:46

非常に綺麗な図を描くことができました。また相関係数やP値も載せることができました。 こちら、欠損値があるデータの場合は使えないのでしょうか?
melian

2023/05/11 01:51

欠損値がある場合は、corr, pval = pearsonr(x, y) を以下の様に変更してみてください。(np.nan_to_num() で欠損値を 0 に置き換えます) import numpy as np corr, pval = pearsonr(np.nan_to_num(x), np.nan_to_num(y))
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問