본문 바로가기
AI

R로 하는 데이터 시각화: ggplot2 완벽 정리

by sgorok 2025. 4. 17.

  데이터 분석에서 중요한 단계 중 하나가 바로 ‘시각화’입니다.
숫자로만 보면 어렵고 딱딱한 데이터도, 그래프로 보면 훨씬 이해하기 쉬워지죠.

오늘은 R 프로그래밍 언어의 대표 시각화 패키지인 ggplot2를 소개해드릴게요.
ggplot2는 예쁘고 깔끔한 그래프를 손쉽게 그릴 수 있어, 전 세계 데이터 분석가들이 가장 사랑하는 도구 중 하나입니다.


 ggplot2란?

ggplot2는 R 언어에서 제공하는 시각화 전용 패키지로, "Grammar of Graphics"라는 철학을 바탕으로 만들어졌습니다. 즉, 데이터를 시각화할 때 마치 문장을 구성하듯 레이어(layer)를 쌓아 완성해 나가는 방식이죠.

  • 기본 그래프부터 복잡한 시각화까지 가능
  • 깔끔한 디자인과 높은 커스터마이징 자유도
  • 논문용, 리포트용 고품질 그래프 제작에 탁월

설치 방법:

ggplot(data = 데이터셋, aes(x = 변수1, y = 변수2)) +
  기하객체(geom_)

 

ggplot(data = mpg, aes(x = displ, y = hwy)) +
  geom_point()

  • 이 코드는 mpg 데이터에서 배기량(displ)과 고속도로 연비(hwy)의 관계를 산점도(scatter plot)로 나타냅니다.

주요 그래프 유형과 코드 예제

1. 산점도 (Scatter Plot)

연속형 변수 두 개의 관계를 표현할 때 사용합니다.

ggplot(mpg, aes(x = displ, y = hwy)) +   geom_point(color = "blue", size = 3)

2. 막대그래프 (Bar Chart)

범주형 변수의 개수를 비교할 때 사용합니다.

ggplot(mpg, aes(x = class)) +   geom_bar(fill = "skyblue")

3. 히스토그램 (Histogram)

연속형 변수의 분포를 확인할 때 사용합니다.

ggplot(mpg, aes(x = hwy)) +  geom_histogram(binwidth = 2, fill = "orange", color = "white")

 

4. 선그래프 (Line Chart)

시간 순서나 추세를 나타낼 때 사용합니다.

ggplot(economics, aes(x = date, y = unemploy)) +   geom_line(color = "red")

5. 박스플롯 (Boxplot)

그룹별 데이터의 분포와 이상치를 표현합니다.

ggplot(mpg, aes(x = class, y = hwy)) +  geom_boxplot(fill = "lightgreen")

테마와 꾸미기

기본 그래프도 좋지만, 보고서나 발표용으로는 좀 더 세련되게 꾸미고 싶을 때가 있죠?
ggplot2는 theme_() 함수나 labs()를 이용해 제목, 축 이름, 폰트, 배경까지 자유롭게 설정할 수 있어요.

 

ggplot(mpg, aes(x = class, y = hwy)) +   geom_boxplot() +
 labs(title = "차종별 고속도로 연비", x = "차종", y = "연비") + 
  theme_minimal()

실무에서 자주 쓰는 팁

  • facet_wrap(~ 변수) : 변수 기준으로 여러 개의 그래프를 나열
  • geom_smooth() : 추세선 추가
  • aes(color = 변수) : 색상으로 범주 구분

ggplot(mpg, aes(x = displ, y = hwy, color = class)) +   geom_point() +   geom_smooth(se = FALSE)

마무리하며

ggplot2는 처음엔 살짝 복잡하게 느껴질 수 있지만, 한 번 익숙해지면 정말 강력한 시각화 도구입니다.
다양한 그래프를 자유자재로 만들 수 있어 실무 보고서, 연구 자료, 블로그 콘텐츠 제작에도 활용도가 높아요.

데이터를 ‘보이게’ 만들고 싶다면, R과 ggplot2의 조합은 최고의 선택입니다.
지금부터 하나씩 연습해보면서 나만의 시각화 스킬을 키워보세요!