방사형 차트: R을 활용한 데이터 시각화 가이드

방사형 차트 - R 데이터 시각화
(R 데이터 시각화)

여러 개의 변수를 비교하고 싶을 때, 숫자로만 데이터를 분석하면 쉽게 감이 오지 않을 때가 많습니다. 이럴 때 방사형(레이더) 차트는 탁월한 선택이 될 수 있습니다. 레이더 차트는 여러 축을 활용해 데이터를 시각적으로 표현하며, 특히 여러 그룹 간의 특성을 비교하거나 패턴을 도출할 때 유용합니다.

이번 포스트에서는 Rfmsb 패키지를 활용해 방사형 차트를 생성하는 방법을 살펴보겠습니다. 또한, 레이더 차트를 통해 데이터를 효과적으로 분석하고 활용하는 방법까지 알아볼 것입니다.

방사형 차트란?

레이더 차트는 데이터를 여러 축에 따라 다각형 형태로 R 데이터 시각화한 그래프입니다.

  • 사용 목적: 여러 항목에 대한 상대적 비교나 패턴 분석.
  • 특징
    • 각 축은 변수(특성)을 나타냅니다.
    • 축의 끝에 가까울수록 해당 변수의 값이 높음을 의미합니다.
    • 데이터 세트를 여러 개 겹쳐 표현하여 그룹 간 비교가 가능합니다.

레이더 차트는 설문조사 결과 분석, 제품 비교, 팀 성과 평가 등 다양한 영역에서 활용될 수 있습니다.

R 데이터 시각화: fmsb 패키지 활용

코드 블록

아래는 R 데이터 시각화 코드입니다.

# fmsb 패키지 설치 및 로드
if (!requireNamespace("fmsb", quietly = TRUE)) {  
  install.packages("fmsb")  # 패키지가 없으면 설치
}
library(fmsb)  # 패키지 로드

# 데이터 생성 및 데이터프레임 변환
# 각 항목에 대한 평가 점수
res <- c(3, 4, 5, 3, 6, 5, 7, 4, 6, 7, 5, 5, 2, 3, 3, 3)  
mat <- matrix(res, byrow = TRUE, ncol = 8)  
df <- as.data.frame(mat)  
colnames(df) <- c("Performance", "Stability", "Usability", "Durability", 
                  "Approachability", "Differentiation", "Reputation", "Pride")

# 최대값과 최소값 추가 (레이더 차트의 축 범위 설정)
df <- rbind(rep(7, 8), rep(1, 8), df)

# 색상 팔레트 정의
library(scales)  
fill_colors <- alpha(c("#FF6347", "#4682B4"), 0.4)  

# 레이더 차트 그리기
radarchart(
  df, 
  axistype = 1,                        
  pcol = c("#FF6347", "#4682B4"),      
  pfcol = fill_colors,                 
  plwd = 2,                            
  cglcol = "grey",                     
  cglty = 1,                           
  cglwd = 0.8,                         
  axislabcol = "black",                
  vlcex = 1.2                          
)

# 타이틀 추가
title(main = "Radar Chart: Product Comparison", 
      col.main = "black", 
      font.main = 2, 
      cex.main = 1.5)

# 범례 추가
legend(
  x = 1, y = 0.8, 
  legend = c("Product A", "Product B"),  
  col = c("#FF6347", "#4682B4"),         
  pch = 15,                             
  pt.cex = 2,                            
  cex = 1.2,                            
  bty = "n"                             
)

코드 해설

1. fmsb 패키지 설치 및 로드

if (!requireNamespace("fmsb", quietly = TRUE)) {  
  install.packages("fmsb")  
}
library(fmsb)
  • requireNamespace()를 사용해 fmsb 패키지의 설치 여부를 확인하고, 설치되지 않았으면 설치 후 로드합니다.

2. 데이터 생성

res <- c(3, 4, 5, 3, 6, 5, 7, 4, 6, 7, 5, 5, 2, 3, 3, 3)  
mat <- matrix(res, byrow = TRUE, ncol = 8)  
df <- as.data.frame(mat)
  • 평가 점수를 벡터로 생성(res)한 후, 매트릭스로 변환(matrix)하고 데이터프레임으로 변환(as.data.frame)합니다.

3. 축 범위 설정

df <- rbind(rep(7, 8), rep(1, 8), df)
  • 최대값(7)과 최소값(1)을 각 축에 추가해 레이더 차트의 범위를 정의합니다.

4. 레이더 차트 스타일링

radarchart(
  df, 
  axistype = 1,                        
  pcol = c("#FF6347", "#4682B4"),      
  pfcol = fill_colors,                 
  plwd = 2,                            
  cglcol = "grey",                     
  cglty = 1,                           
  cglwd = 0.8,                         
  axislabcol = "black",                
  vlcex = 1.2                          
)
  • axistype: 축 스타일 설정.
  • pcol: 데이터 라인 색상 지정.
  • pfcol: 데이터 영역의 반투명 색상 설정.
  • cglcol: 그리드 선의 색상을 회색으로 설정.
  • vlcex: 축 레이블 크기 조정.

5. 범례와 타이틀 추가

title(main = "Radar Chart: Product Comparison")
legend(x = 1, y = 0.8, legend = c("Product A", "Product B"), col = c("#FF6347", "#4682B4"))
  • 타이틀과 범례를 추가해 그래프를 보다 직관적으로 만듭니다.

레이더 차트의 장점

레이더 차트 장점

1. 데이터 비교

  • 다차원 데이터 분석에 최적화
    레이더 차트는 여러 특성을 한 화면에 시각적으로 표현할 수 있어, 각 항목 간의 값을 직관적으로 비교할 수 있습니다.
    • 예를 들어, 제품의 성능, 안정성, 가격 경쟁력을 동시에 비교하여 가장 우수한 항목과 부족한 항목을 빠르게 파악할 수 있습니다.
    • 특정 그룹의 특성이 다른 그룹과 어떻게 다른지 한눈에 파악 가능합니다.

2. 패턴 발견

  • 데이터의 강점과 약점 파악
    방사형 구조를 통해 데이터의 중심으로부터의 확장성을 확인하며, 강점과 약점을 명확히 파악할 수 있습니다.
    • 강점: 축의 끝에 가까운 값으로 표시되어 쉽게 확인 가능.
    • 약점: 축의 중심에 가까운 값으로 표시되어 명확히 드러남.
  • 트렌드 및 이상점 감지
    여러 데이터 세트가 겹쳐진 상태에서 유사한 패턴을 가지는 그룹을 발견하거나, 특정 데이터가 패턴에서 벗어난 이상치를 시각적으로 감지할 수 있습니다.

3. 응용 가능성

  • 광범위한 적용 분야
    방사형 차트는 데이터 비교와 패턴 분석에 매우 유용하며, 다음과 같은 다양한 분야에서 응용 가능합니다.
    • 제품 비교: 경쟁 제품 간의 주요 특성을 비교해 소비자나 마케팅 전략 수립에 활용.
    • 설문조사 분석: 설문조사 데이터를 시각화해 응답자의 성향이나 만족도를 분석.
    • 팀 성과 평가: 팀원 개별 역량이나 부서 간의 성과를 비교하여 강점과 개선점을 시각적으로 파악.
    • 의사결정 지원: 여러 대안의 강점과 약점을 분석해 최적의 선택을 도출.
  • 시각적 전달력 강화
    데이터를 단순히 숫자로 나열하는 것보다 시각적 차트를 통해 정보를 전달함으로써 의사소통 효율성이 크게 향상됩니다.

4. 심미적이고 직관적인 표현

  • 시각적으로 매력적
    방사형 차트는 인포그래픽처럼 아름답고 현대적인 시각화를 제공하여 프레젠테이션 자료나 보고서에서도 높은 가독성을 제공합니다.
  • 사용자 친화적
    데이터를 처음 접하는 사람도 구조를 쉽게 이해할 수 있어, 복잡한 데이터를 전달하기 좋은 도구입니다.

마무리

이번 포스트에서는 레이더 차트의 개념과 R을 활용해 이를 구현하는 방법을 살펴보았습니다. 레이더 차트는 데이터의 패턴과 관계를 직관적으로 보여주는 강력한 도구입니다. 직접 데이터를 수정하고 스타일링을 조정하여, 여러분만의 레이더 차트를 만들어 보세요!

참고로, 대한민국의 아픈 역사이면서 2024년 12월 현재 진행 중인 대통령 탄핵의 소용돌이에 대해서 과거 사례와 함께 시각화 해본 내용이 있습니다. 아픈 역사를 되풀이 하지말지는 의미에서 한번 작성해 보았습니다. 레이더 차트를 활용해서 시각화 해본 탄핵 히스토리! 대한민국 대통령 탄핵 사례 분석: R 데이터 시각화와 역사적 교훈

유사한 게시물