R 데이터 시각화 기초와 ggpubr 맛보기

모든 데이터 분석 파이프라인의 대미를 장식하는 것은, 빽빽한 숫자의 나열과 복잡한 수식을 단 한 장의 직관적인 그림으로 경영진과 대중에게 설득해 내는 “데이터 시각화(Data Visualization)”입니다.

R은 태생 자체가 데이터베이스 통계와 분석을 위한 전문 언어인 만큼, 전 세계에서 가장 우아하고 강력한 시각화 프레임워크 생태계(특히 ggplot2)를 보유하고 있습니다. 오늘은 처음 R 시각화를 접하시는 분들이 코드의 복잡성에 흥미를 잃지 않으면서도 가장 빠르고 세련된 학술지 수준의 결과물을 낼 수 있는, ggplot2의 뼈대 개념과 갓성비 패키지인 ggpubr 패키지를 완벽히 소개합니다.

1. 모든 R 시각화의 절대 뼈대: “레이어(Layer) 중첩” 개념 이해하기

R ggplot2 시각화의 가장 위대하고 독창적인 철학은 그림을 어도비 포토샵처럼 투명한 셀로판지(레이어, Layer) 단위로 분할하여 밑에서부터 차곡차곡 위로 쌓아 올린다(+ 연산자 사용)는 것입니다.

  1. 1층 기반 셀로판지 ggplot() : 텅 빈 캔버스 도화지에 사용할 데이터 프레임을 깔고 X축, Y축의 눈금 스케일 좌표를 매핑하여 그립니다.
  2. 2층 기하 셀로판지 geom_point() : 그 위에 실질적인 기하 모델인 잉크를 뿌려 데이터 형상에 해당하는 수많은 산점도 점(Dots)들을 덧그려 찍어줍니다.
  3. 3층 추세 셀로판지 geom_smooth() : 점들의 트렌드 방향성을 꿰뚫어 보여주는 회귀 추세선(빨간색 선)을 도장 찍듯 그 위에 겹쳐 올립니다.
  4. 4층 디자인 셀로판지 theme_minimal() : 마지막으로 백그라운드의 회색 격자와 폰트 규격을 모던하게 바꾸어주는 필터를 윗단에 끼워줍니다.

이렇게 레이어 명령어 조각들을 + 기호로 더 추가할 때마다 그래픽 계층이 하나씩 위로 덧칠해져 쌓이면서 점점 고도화된 하나의 복잡한 통계 차트를 완성해 나가는 것이 R 그래픽스 문법(Grammar of Graphics)의 핵심 메커니즘입니다.

2. 초보자를 위한 갓성비 시각화 랩퍼 패키지: ggpubr

세계에서 가장 유명한 코어 시각화 패키지는 단연 ggplot2지만, 모든 레이어와 테마를 수동으로 타이핑하여 하나하나 제어해야 하므로 초보자가 당장 실무 대시보드에 적용하기에는 코드가 매우 길고 까다로운 편입니다. 대신 ggplot2 엔진을 기반으로 내부를 완전히 랩핑(Wrapping)하여, 훨씬 직관적인 짧은 코드로 “논문 출판용(Pub)” 고해상도 그래프를 뚝딱 그려주는 ggpubr 패키지가 전 세계적으로 각광받고 있습니다.

# 데이터프레임과 변수명만 툭 던져주면 끝나는 ggpubr!
# install.packages("ggpubr")
library(ggpubr)

# 1. 든든한 바 그래프 (막대기)
plot_data |> 
    ggbarplot(
        x = "월", y = "방문객_합계", 
        fill = "steelblue", 
        label = TRUE,  # 막대기 꼭대기 위에 정수형 수치 숫자 라벨 자동 표시!
        title = "월별 방문객 수 요약"
    )
# 2. 추세선의 기울기를 보여주는 꺾은선형 라인 그래프
plot_data |> 
    ggline(
        x = "월", y = "방문객_합계",
        color = "midnightblue",
        size = 1.2,    # 선의 두께 지정
        title = "월별 방문 추세 시계열 변화"
    )

기존 ggplot2였다면 수동으로 테마 적용, 라벨 텍스트 위치 수동 계산 등을 하느라 10줄이 넘었을 코드가 단축 명령어 하나로 극도로 세련되게 뽑혀 나옵니다.

3. 실무자를 춤추게 하는 마법의 [아카데믹 팔레트] 자동 조합 색상

엑셀의 낡은 기본 색상 조합(칙칙한 파랑-주황-회색 등)에 질리시진 않았나요? ggpubr 패키지가 제공하는 가장 큰 축복 중 하나는, 저명한 글로벌 의학 저널들이나 디자인 에이전시, 언론사들이 실제 깐깐하게 규격화하여 사용하는 아름다운 색상 조합(Color Palette) 토큰들을 키워드 타이핑 하나로 공짜로 내 차트에 이식해 빌려 쓸 수 있다는 점입니다.

plot_data |> 
    ggbarplot(
        x = "월", y = "월별증감율", 
        fill = "증감상태그룹", 
        palette = "jco",  # 이 단어 하나면 전체 색상이 국제 저널 규격으로 고급스럽게 바뀝니다!
        title = "통영시 방문객 증감 그룹 비교"
    )

💡 초보자 강력 추천 치트키 팔레트명 모음:
"jco" : Oncology(종양학) 글로벌 저널 스타일의 차분하고 신뢰성 높은 고급스러운 배색
"lancet" : 최고 권위 의학 저널 Lancet 스타일의 강렬하고 눈에 확 띄는 명도 대비 배색
"npg" : Nature Publishing Group 출판사 스타일의 깔끔한 아카데믹 네온 배색
"aaas" : Science 잡지 스타일 파스텔 계열 조합

4. 벡터 논문 규격 고화질 해상도로 다운로드 파일 강제 저장하기 (ggsave)

기껏 멋진 그래프 코딩을 쳐놓고, 윈도우 스크린 캡처 도구로 대충 영역 캡처만 하시면 화질 픽셀이 무조건 자글자글 깨집니다. ggplot2 파생 생태계에서 렌더링된 모든 그래프 변수 객체는 책이나 PPT 메인, 혹은 논문에 넣어도 절대 흐려지거나 깨지지 않는 초고화질 DPI 그래픽 사진 파일로 정밀하게 뽑아낼 수 있는 수출 기능을 단독 지원합니다.

# 먼저 그래프를 하나의 객체(예: example_plot)로 변수안에 담아 선언합니다.
example_plot <- ggbarplot(...)

# 방금 메모리에 만든 그래프 객체를 초고해상도 PNG 파일로 디스크 드라이브에 저장!
ggsave("my-final-plot.png",
       plot = example_plot, 
       width = 24, height = 16, units = "cm",
       dpi = 300)  # 출판용 기준인 300 dpi 강제 인가 (높을 수록 엄청난 고화질!)

데이터 시각화는 끝이 없는 융합 코딩 예술과도 같습니다. 데이터 통찰력이 뛰어나도 그것을 남들에게 시각적으로 보여주지 못하면 분석 프로젝트는 빛을 바랩니다. 오늘 소개한 ggpubr의 뼈대와 색상 팔레트 스킬을 바탕으로, 훗날 ggplot2라는 방대한 계층형 바다로 나아가 여러분의 회사 빅데이터를 그 누구보다 아름답고 논리적으로 빛내보시길 적극 응원합니다!


당신이 좋아할 만한 콘텐츠

by Google Adsense


관련 글 보기