R - 상자 그래프: 데이터 분포 시각화의 초보자 가이드

안녕하세요, 데이터 마법사를 꿈꾸는 여러분! 오늘 우리는 R를 사용하여 상자 그래프의 세계로 흥미로운 여정을 떠납니다. 이전에 코드를 작성해 본 적이 없어도 걱정 마세요 - 저는 여러분의 친절한 안내자가 되어 단계별로 안내하겠습니다. 이 튜토리얼의 끝을 맺을 때까지, 프로처럼 아름다운 상자 그래프를 만들 수 있을 것입니다!

R - Boxplots

상자 그래프는 무엇인가요?

코드에 들어가기 전에 상자 그래프가 무엇인지 이해해 보겠습니다. 여러분의 반 학생들의 키를 요약하려고 상상해 봅시다. 상자 그래프는 이 데이터의 분포를 한눈에 볼 수 있는 마법의 작은 상자입니다. 중앙값, 사분位数, 그리고 데이터의 이상치를 볼 수 있는 훌륭한 방법입니다.

첫 번째 상자 그래프 만들기

R 환경 설정

가장 먼저, R이 준비되어 있는지 확인해 보겠습니다. 아직 R을 설치하지 않았다면, 공식 R 웹사이트로 이동하여 운영 체제에 맞는 설치 지침을 따르세요.

R을 설치한 후, R 콘솔이나 RStudio를 엽니다. 이제 상자 그래프를 만들 준비가 되었습니다!

기본 상자 그래프 문법

R에서 상자 그래프를 만드는 기본 문법은 예상보다 간단합니다. 다음과 같습니다:

boxplot(data)

실제 데이터로 이를 시도해 보겠습니다. 내장된 mtcars 데이터셋을 사용하겠습니다. 이 데이터셋은 다양한 차 모델에 대한 정보를 포함하고 있습니다.

# 차 마일리지의 기본 상자 그래프 만들기
boxplot(mtcars$mpg)

이 코드를 실행하면 상자 그래프가 나타납니다. 여러분이 보고 있는 것을 분해해 보겠습니다:

  • 상자 중앙의 두꺼운 검은 줄은 중앙값입니다.
  • 상자의 바닥은 첫 사분位数(25%의 데이터가 이 점 아래에 있습니다)를 나타냅니다.
  • 상자의 상단은 세 번째 사분位数(75%의 데이터가 이 점 아래에 있습니다)를 나타냅니다.
  • 상자에서 이어지는 톱니바늘(whiskers)은 데이터의 범위를 나타냅니다.
  • 톱니바늘을 벗어난 점은 이상치로 간주됩니다.

컬러와 레이블 추가

이제 상자 그래프를 좀 더 정보적이고 시각적으로 아름답게 만들어 보겠습니다:

# 더 상세한 상자 그래프 만들기
boxplot(mtcars$mpg,
main="차 마일리지 분포",
ylab="마일리지 당 갤런",
col="lightblue",
border="darkblue")

이 예제에서:

  • main은 그래프에 제목을 추가합니다.
  • ylab은 y축에 레이블을 추가합니다.
  • col은 상자를 연한 파랑색으로 채웁니다.
  • border는 상자의 외곽선을 짙은 파랑색으로 만듭니다.

여러 그룹 비교

상자 그래프의 장점 중 하나는 다른 그룹을 옆에 두고 비교할 수 있는 능력입니다. 차의 실린더 수에 따른 마일리지를 비교해 보겠습니다:

# 다른 실린더 수에 따른 마일리지 비교
boxplot(mpg ~ cyl, data=mtcars,
main="차 마일리지에 따른 실린더 수",
xlab="실린더 수",
ylab="마일리지 당 갤런",
col=c("lightgreen", "lightblue", "pink"))

여기서 우리는 mpg ~ cyl이라는 공식 기호를 사용하여 R에 mpgcyl의 각 고유한 값에 대해 상자 그래프로 만들도록 지시합니다. 각 그룹에 다른 색상을 추가했습니다.

상자 그래프에 톱니 추가

이제 기본을 마스터한 만큼, 상자 그래프에 톱니를 추가하여 좀 더 세련된 모습을 만들어 보겠습니다.

톱니는 무엇인가요?

톱니는 상자의 측면에 있는 작은 틈이며, 단순히 외관상의 것만이 아닙니다. 두 상자의 톱니가 겹치지 않으면, 중앙값이 다른两组의 강력한 증거입니다.

톱니가 있는 상자 그래프 만들기

이전 예제를 수정하여 톱니를 추가해 보겠습니다:

# 톱니가 있는 상자 그래프 만들기
boxplot(mpg ~ cyl, data=mtcars,
main="차 마일리지에 따른 실린더 수",
xlab="실린더 수",
ylab="마일리지 당 갤런",
col=c("lightgreen", "lightblue", "pink"),
notch=TRUE)

여기서 새로운 파라미터 notch=TRUE를 추가했습니다. 이 간단한 추가로 톱니가 생깁니다.

톱니가 있는 상자 그래프 해석

톱니를 주의 깊게 보세요. 두 상자의 톱니가 겹치지 않으면, 이两组의 진짜 중앙값(중간 값)이 다른 것을 확신할 수 있습니다. 이는两组 간의 중요한 차이를 빠르게 발견하는 시각적 방법입니다!

상자 그래프 커스터마이징

이제 기본을 알아맞춘 만큼, 상자 그래프를 더 정보적이고 시각적으로 아름답게 만드는 몇 가지 방법을 살펴보겠습니다.

개별 데이터 포인트 추가

때로는 상자 그래프 옆에 실제 데이터 포인트를 볼 필요가 있습니다. 이를 위해 jitter 함수를 사용할 수 있습니다:

# 개별 포인트 포함한 상자 그래프
boxplot(mpg ~ cyl, data=mtcars,
main="차 마일리지에 따른 실린더 수",
xlab="실린더 수",
ylab="마일리지 당 갤런",
col=c("lightgreen", "lightblue", "pink"),
notch=TRUE)

# 점을 추가
stripchart(mpg ~ cyl, data=mtcars,
method="jitter",
vertical=TRUE,
add=TRUE,
pch=20,
col="darkgray")

이 코드는 먼저 상자 그래프를 만들고, 그 위에 개별 데이터 포인트를 추가합니다. pch=20 파라미터는 작은 원형 점을 만들고, col="darkgray"는 점을 짙은 회색으로 만듭니다.

이상치 외관 변경

기본적으로 상자 그래프에서 이상치는 단순한 점으로 표시됩니다. 이를 변경할 수 있습니다:

# 커스터마이징된 이상치 외관
boxplot(mpg ~ cyl, data=mtcars,
main="차 마일리지에 따른 실린더 수",
xlab="실린더 수",
ylab="마일리지 당 갤런",
col=c("lightgreen", "lightblue", "pink"),
notch=TRUE,
outpch=8,  # 별 모양의 이상치 포인트
outcol="red")  # 빨간색 이상치

여기서 outpch=8은 이상치 포인트를 별 모양으로 변경하고, outcol="red"은 이상치를 빨간색으로 만듭니다.

결론

축하합니다! 여러분은 R에서 상자 그래프를 만들고 커스터마이징하는 방법을 배웠습니다. 기본 그래프에서 톱니가 있는 비교 그래프와 개별 데이터 포인트, 그리고 이상치의 외관을 변경하는 것까지, 여러분은 데이터 시각화 도구 모음에 강력한 도구를 가지게 되었습니다.

기억해 두세요, 상자 그래프(그리고 R을 포함한)를 마스터하려면 연습이 중요합니다. 다양한 데이터셋으로 상자 그래프를 만들고, 색상과 스타일을 실험하고, 가장 중요한 것은 즐겁게 만들어 보세요!

이제까지 다루었던 상자 그래프 파라미터의 빠른 참고 표입니다:

파라미터 설명 예제
main 그래프의 주 제목 main="My Boxplot"
xlab x축 레이블 xlab="Groups"
ylab y축 레이블 ylab="Values"
col 상자 채우기 색상 col="lightblue"
border 상자 테두리 색상 border="darkblue"
notch 톱니 추가 notch=TRUE
outpch 이상치 포인트 모양 outpch=8
outcol 이상치 색상 outcol="red"

즐겁게 그래프를 그리세요, 그리고 여러분의 데이터가 항상 아름답게 상자에 담길 수 있기를 바랍니다!

Credits: Image by storyset