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에서 상관관계 히트맵 생성

8명의 서로 다른 농구 선수에 대한 다양한 통계를 보여주는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.

 #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() 함수의 낮은 인수와 높은 인수에 원하는 색상을 자유롭게 사용하세요.

예를 들어 낮은 값에는 “빨간색”을 사용하고 높은 값에는 “녹색”을 사용할 수 있습니다.

 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에서 범례 레이블을 변경하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다