검색
검색
공개 노트 검색
회원가입로그인

[R 쉽게 설명하기] 범주형 데이터 시각화

포켓몬 트레이너와 함께하는 데이터 시각화 대모험!

reasonofmoon

1. 대모험의 시작

안녕하세요, 친구들! 저는 데이터 분석의 세계로 여러분을 이끌 포켓몬 트레이너예요. 오늘은 R이라는 도구를 사용해 데이터를 그림으로 나타내는 마법을 배울 거예요. 이 마법을 활용하면 우리가 수집한 데이터의 비밀을 쉽게 파헤칠 수 있답니다. 준비 되셨나요? 그럼 출발해볼까요!

2. 범주형 데이터와의 첫 만남

우리가 탐험할 데이터 세계에는 크게 두 종류의 데이터가 있어요. 하나는 범주형 데이터로, 아이스크림 맛, 혈액형처럼 몇 개의 그룹으로 나눌 수 있는 데이터예요. 또 하나는 연속형 데이터로, 키, 몸무게처럼 값이 연속적으로 이어지는 데이터랍니다.

막대 그래프로 범주형 데이터 표현하기

범주형 데이터를 나타낼 때는 막대 그래프를 사용해요. 막대의 높이로 각 그룹의 크기를 비교할 수 있죠. 막대를 늘어놓은 모양의 기본 막대 그래프, 여러 특징을 함께 비교할 수 있는 나란히 막대 그래프, 전체에서 각 그룹이 차지하는 정도를 볼 수 있는 누적 막대 그래프가 있어요.

원 그래프로 비율 표현하기

원 그래프는 전체를 동그란 원으로 나타내고, 각 그룹을 부채꼴로 표현해요. 부채꼴의 크기로 각 그룹이 차지하는 비율을 쉽게 볼 수 있죠.

reasonofmoon

3. R과 함께 데이터 시각화 모험 떠나기!

자, 이제 R을 사용해서 직접 데이터를 그림으로 그려볼 차례예요! 상상해보세요, 여러분이 포켓몬 세계의 아이스크림 가게 주인이 되어 손님들이 좋아하는 맛을 그래프로 나타내는 거예요.

첫 번째 미션: 기본 막대 그래프 만들기

  1. 포켓몬 센터에 들러 MASS 패키지를 받아 오세요. 이 안에는 우리가 분석할 Cars93이라는 데이터가 있어요.

library(MASS)
  1. Cars93 데이터에는 자동차 종류를 나타내는 Type이라는 정보가 있어요. 이걸 사용해서 그래프를 만들어 볼 거예요.

tab <- with(Cars93, table(Type))
barplot(tab, main="자동차 종류", xlab="종류", ylab="자동차 수", col=rainbow(6))
  1. 그래프의 제목, 축 이름, 막대 색깔 등을 자유롭게 바꿔보세요. 어떤 게 달라지나요?

[R 쉽게 설명하기] 범주형 데이터 시각화 image 3

[R 쉽게 설명하기] 범주형 데이터 시각화 image 4

두 번째 미션: 나란히 막대 그래프 만들기

  1. 이번에는 TypeAirBags라는 두 가지 정보를 함께 사용해 볼 거예요.

tab <- with(Cars93, xtabs(~Type + AirBags))
barplot(tab, beside=TRUE, col=rainbow(6), 
        legend=c('운전석+조수석','운전석만','없음'), 
        xlab="자동차 종류", ylab="자동차 수")  
  1. beside=TRUE는 막대를 나란히 그리라는 뜻이에요. 이걸 FALSE로 바꾸면 어떻게 될까요?

[R 쉽게 설명하기] 범주형 데이터 시각화 image 5

[R 쉽게 설명하기] 범주형 데이터 시각화 image 6

세 번째 미션: 원 그래프 탐험하기

  1. 같은 데이터를 원 그래프로도 나타낼 수 있어요.

pie(tab, col=rainbow(6), main="자동차 종류")
  1. 부채꼴에 이름표를 붙이려면 names(tab)을 사용해 보세요.

names(tab) <- c('소형','대형','중형','경차','스포츠카','밴') 
pie(tab, col=rainbow(6), main="자동차 종류")

[R 쉽게 설명하기] 범주형 데이터 시각화 image 7

[R 쉽게 설명하기] 범주형 데이터 시각화 image 8

reasonofmoon

4. 연속형 데이터와 만나기

연속형 데이터는 히스토그램, 밀도 그래프, QQ 플롯 등으로 나타낼 수 있어요.

히스토그램으로 연속형 데이터의 분포 알아보기

히스토그램은 연속형 데이터의 분포를 보여주는 그래프예요. 데이터를 일정한 구간으로 나누고, 각 구간에 속하는 데이터의 개수를 막대로 나타내죠.

hist(Cars93$MPG.highway, main="고속도로 연비", 
     xlab="연비(마일/갤런)", ylab="자동차 수")

[R 쉽게 설명하기] 범주형 데이터 시각화 image 10

밀도 그래프로 부드러운 분포 곡선 그리기

밀도 그래프는 히스토그램을 부드럽게 연결한 곡선이에요. 연속형 데이터의 분포를 나타내는 또 다른 방법이죠.

plot(density(Cars93$MPG.highway), main="고속도로 연비 밀도 그래프", 
     xlab="연비(마일/갤런)")

[R 쉽게 설명하기] 범주형 데이터 시각화 image 11

QQ 플롯으로 데이터의 정규성 확인하기

QQ 플롯은 데이터가 정규 분포를 따르는지 확인할 때 사용해요. 데이터를 정규 분포와 비교해서 그려주는 그래프랍니다.

qqnorm(Cars93$Weight, main="자동차 무게의 QQ 플롯")
qqline(Cars93$Weight, col="red")

[R 쉽게 설명하기] 범주형 데이터 시각화 image 12

5. 트레이너와 함께 배워요!

Q: 어떤 그래프를 사용해야 할지 모르겠어요! A: 데이터의 종류를 먼저 확인하는 게 중요해요. 범주형 데이터는 막대 그래프나 원 그래프로, 연속형 데이터는 히스토그램, 밀도 그래프, QQ 플롯 등으로 나타낼 수 있죠.

Q: 그래프에서 색깔은 어떻게 정하나요? A: rainbow(), heat.colors(), topo.colors() 등 다양한 색상 팔레트 함수를 사용할 수 있어요. 또는 col=c("red","blue","green") 처럼 색상을 직접 지정할 수도 있죠.

reasonofmoon

6. 새로운 모험을 떠나요!

와, 벌써 그래프 만드는 방법을 잘 익히셨네요! 이제 여러분은 데이터 시각화 능력을 갖춘 훌륭한 포켓몬 트레이너가 되었어요. 앞으로도 데이터 분석의 세계를 탐험하면서 새로운 것들을 발견해 보는 건 어떨까요?

  • 친구들이 가장 좋아하는 게임 장르를 조사해서 막대 그래프로 나타내 보세요.

  • 포켓몬들의 몸무게 분포를 히스토그램과 밀도 그래프로 비교해 보아요.

  • 우리 가족의 하루 스마트폰 사용 시간을 QQ 플롯으로 그려서 정규 분포와 비교해 볼까요?

모두 데이터 분석가로서의 첫걸음을 축하해요! 앞으로도 데이터와 함께 신나는 모험 가득하시길 바랄게요!

조회수 : 92
heart
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
T
페이지 기반 대답
AI Chat