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())
그 결과는 각 쌍별 변수 조합 간의 상관 계수를 시각화할 수 있는 상관 히트맵입니다.
이 특정 히트 맵에서 상관 계수는 다음 색상을 나타냅니다.
- -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())
참고 : 상관관계 히트맵의 정확한 색상을 더욱 세부적으로 제어하려는 경우 사용할 16진수 색상 코드를 지정할 수도 있습니다.
추가 리소스
다음 튜토리얼에서는 ggplot2에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
ggplot2에서 축 레이블을 회전하는 방법
ggplot2에서 축 나누기를 설정하는 방법
ggplot2에서 축 제한을 설정하는 방법
ggplot2에서 범례 레이블을 변경하는 방법