R で相関ヒートマップを作成する方法 (例付き)


次の基本構文を使用して、R で相関ヒート マップを作成できます。

 #calculate correlation between each pairwise combination of variables
cor_df <- round(cor(df), 2)

#melt the data frame
melted_cormat <- melt(cor_df)

#create correlation heatmap
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5 ) +
  scale_fill_gradient2(low = " blue ", high = " red ",
                       limit = c(-1,1), name=" Correlation ") +
  theme(axis. title . x = element_blank(),
        axis. title . y = element_blank(),
        panel. background = element_blank())

次の例は、この構文を実際に使用する方法を示しています。

例: R で相関ヒートマップを作成する

R に、8 人の異なるバスケットボール選手のさまざまな統計を示す次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (points=c(22, 25, 30, 16, 14, 18, 29, 22),
                 assists=c(4, 4, 5, 7, 8, 6, 7, 12),
                 rebounds=c(10, 7, 7, 6, 8, 5, 4, 3),
                 blocks=c(12, 4, 4, 6, 5, 3, 8, 5))

#view data frame
df

  points assists rebounds blocks
1 22 4 10 12
2 25 4 7 4
3 30 5 7 4
4 16 7 6 6
5 14 8 8 5
6 18 6 5 3
7 29 7 4 8
8 22 12 3 5

相関ヒートマップを作成して、データ フレーム内の変数のペアごとの組み合わせ間の 相関係数を視覚化するとします。

相関ヒートマップを作成する前に、まずcor()を使用して各変数間の相関係数を計算し、次にパッケージのMelt()関数reshape2を使用して結果を使用可能な形式に変換する必要があります。

 library (reshape2)

#calculate correlation coefficients, rounded to 2 decimal places
cor_df <- round(cor(df), 2)

#melt the data frame
melted_cor <- melt(cor_df)

#view head of melted data frame
head(melted_cor)

      Var1 Var2 value
1 points points 1.00
2 assist points -0.27
3 rebound points -0.16
4 block points 0.10
5 assist points -0.27
6 assists assists 1.00

次に、 ggplot2パッケージのgeom_tile()関数を使用して、相関ヒートマップを作成できます。

 library (ggplot2)

#create correlation heatmap
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5 ) +
  scale_fill_gradient2(low = " blue ", high = " red ",
                       limit = c(-1,1), name=" Correlation ") +
  theme(axis. title . x = element_blank(),
        axis. title . y = element_blank(),
        panel. background = element_blank()) 

R の相関ヒートマップ

その結果、変数のペアごとの組み合わせ間の相関係数を視覚化できる相関ヒートマップが得られます。

この特定のヒート マップでは、相関係数は次の色を帯びます。

  • -1に近い場合は
  • 0に近い場合は
  • 1に近い場合は

scale_fill_gradient2()関数のlow引数とhigh引数には、任意の色を自由に使用できます。

たとえば、低い値には「赤」を使用し、高い値には「緑」を使用できます。

 library (ggplot2)

#create correlation heatmap
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5 ) +
  scale_fill_gradient2(low = " red ", high = " green ",
                       limit = c(-1,1), name=" Correlation ") +
  theme(axis. title . x = element_blank(),
        axis. title . y = element_blank(),
        panel. background = element_blank()) 

カスタムカラーを使用したRの相関ヒートマップ

: 相関ヒート マップの正確な色をさらに詳細に制御したい場合は、使用する 16 進数のカラー コードを指定することもできます。

追加リソース

次のチュートリアルでは、ggplot2 で他の一般的なタスクを実行する方法を説明します。

ggplot2 で軸ラベルを回転する方法
ggplot2で軸ブレークを設定する方法
ggplot2 で軸の制限を設定する方法
ggplot2で凡例ラベルを変更する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です