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

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

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

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

Q&A

解決済

1回答

347閲覧

Pythonを使って、相関行列のヒートマップとPvaluesを入れたいです。

Ryosuke0524

総合スコア9

Python 3.x

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

0グッド

0クリップ

投稿2023/05/23 15:14

実現したいこと

Pythonで、写真のようにheatmapに相関係数と相関係数のPvaluesを入れたいです。
なお、Pvaluesは、※を入れたいです。

https://gyazo.com/0a8952e18083b52c94374cb6bb158350

前提

ここに質問の内容を詳しく書いてください。
Pythonで、写真のようにheatmapに相関係数と相関係数のPvaluesを入れたいです。
なお、Pvaluesは、※を入れたいです。
一方、現在Pythonで相関係数を入れることはできてますが、Pvaluesの米印を
どうやって入れたらいいか、わからない状態です。
どなたか、ご教授いただけませんでしょうか?

該当のソースコード

Python

1# 必要なライブラリのインポート 2import numpy as np 3import pandas as pd 4import seaborn as sns
np.random.seed(0) # 10行5列の配列を生成 arr = np.random.randint(0,101,50).reshape(10, 5) # データフレームの作成 col = ['国語', '数学', '社会', '理科', '英語'] df = pd.DataFrame(arr, columns=col) df
# 相関行列の算出 corr = df.corr() # ヒートマップの作成 sns.heatmap(corr)
sns.heatmap(corr, annot=True)

https://gyazo.com/0a8952e18083b52c94374cb6bb158350

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

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

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

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

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

meg_

2023/05/23 16:23

リンクではなく画像として貼り付けしていただけませんか?
guest

回答1

0

ベストアンサー

np.random.randint(0,101,50) の場合、P-value のグレードが全て NS になってしまうので、np.random.randint(0,3,50) に変更しています。

python

1# 必要なライブラリのインポート 2import numpy as np 3import pandas as pd 4import seaborn as sns 5from scipy.stats import pearsonr 6from matplotlib import pyplot as plt 7 8plt.rcParams['font.family'] = 'MS Gothic' 9 10np.random.seed(0) 11# 10行5列の配列を生成 12arr = np.random.randint(0, 3, 50).reshape(10, 5) 13 14# データフレームの作成 15col = ['国語', '数学', '社会', '理科', '英語'] 16df = pd.DataFrame(arr, columns=col) 17 18# 相関行列の算出 19corr = df.corr().round(3) 20pval = df.corr(lambda x, y: pearsonr(x, y)[1])\ 21 .applymap(lambda p: '' if p > 0.05 else \ 22 ''.join(['※' for v in [.05, .01, .001] if p <= v])) 23 24# ヒートマップの作成 25sns.heatmap(corr, annot=corr.astype(str) + '\n' + pval, fmt='s') 26plt.show()

イメージ説明

投稿2023/05/23 17:44

melian

総合スコア19749

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

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

Ryosuke0524

2023/05/31 12:58

ありがとうございます!非常に綺麗なグラフを書くことができました。ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問