이전글
1. 들어가며
목적지를 향해 떠나기 전에 좋은 지도를 갖추는 것은 필수적이다. 데이터 시각화를 하기 전에 먼저 주어진 데이터로 어떤 차트를 그릴 수 있는지 파악하고 있어야 한다. ggplot2에서도 마찬가지로 데이터와 그릴 수 있는 차트의 맵핑 관계를 알고 있다면 더 효율적으로 시각화 작업을 할 수 있다.
2. 변수의 조합과 차트 종류
변수의 종류와 변수간 조합으로 그릴 수 있는 차트가 결정된다. 차트가 결정되면 그 다음에 할 일은 차트를 더 보기 좋게 꾸미는 일 뿐이다. 아래 표는 변수의 종류와 변수간 조합과 해당 데이터에서 그릴 수 있는 차트 종류와 이에 해당하는 ggplot 함수명이다.
변수 개수 | 조합 | 차트 형태 | ggplot2 함수 |
1개 | 연속형 변수 | 밀도함수 | geom_density( ) |
히스토그램 | geom_histogram( ) | ||
이산형 변수 | 막대 그래프 | geom_bar( ) | |
2개 | 연속형 & 연속형 변수 | 산점도 | geom_point( ) |
지터 차트 | geom_jitter( ) | ||
연속형 & 이산형 변수 | 박스플롯 | geom_boxplot( ) |
3. 변수 종류별로 차트 그려보기
R 내장 데이터인 mtcars의 데이터 구조를 살펴보자.
str(mtcars)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...
대부분의 데이터가 numeric 형태다. 따라서 하나의 변수를 이용해 밀도함수, 히스토그램을 그릴 수 있고, 두 개의 변수를 이용해 산점도도 그릴 수 있다. 이렇게 변수의 형태를 염두해 두고 몇 가지 차트를 그려보자.
ggplot(mtcars,aes(hp)) + geom_histogram() #(1)
ggplot(mtcars,aes(cyl)) + geom_bar() #(2)
ggplot(mtcars,aes(x=factor(cyl),y=mpg)) + geom_boxplot() #(3)
ggplot(mtcars,aes(mpg,disp)) + geom_point() #(4)
위의 코드 결과는 번호대로 아래와 같은 차트를 그리게 된다. (3)번 박스플롯에서 x=factor(cyl) 이라고 한 이유는 cyl을 팩터(이산형) 변수로 변형하기 위해서다.
이번 포스팅의 핵심은 데이터 변수의 종류와 조합에 따라 그릴 수 있는 차트 형태가 정해져 있다는 것과 차트의 형태에 따라 ggpplot( ) + 함수(geom_density, geom_histogram, geom_bar, geom_point, geom_jitter, geom_boxplot 등)을 + 뒤에 붙여주면 ggplot의 기본 구조를 형성한다는 것이다. ggplot 문법이 익숙해지려면 먼저 기본구조를 확실하게 기억하고 있어야 한다.
다음글
'ggplot2' 카테고리의 다른 글
4. 1개의 연속형 변수로 density 차트 만들기 (0) | 2022.03.12 |
---|---|
3. aes 요소 추가 (0) | 2022.03.10 |
1. ggplot2 기본구조 (0) | 2022.03.07 |
댓글