이전글
1. 들어가며
ggplot2의 기본 구조는 아래와 같다.
ggplot(data="데이터명", aes(x="변수명", y="변수명")) + geom 함수
여기에서 aes는 특정한 데이터(변수)를 척도에 맵핑 시킬 때 쓰는 명령어다.
library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point()
위의 코드는 iris 데이터의 Sepal.Length 변수를 X축에, Petal.Length 변수를 Y축으로 맵핑하겠다는 의미이다.
2. 차트의 차원과 척도 맵핑 관계
기본적으로 모든 차트는 2차원 공간에서 그려진다. 따라서 기본적으로 차트의 차원(축)은 2차원이다. 물론 <그림 1>처럼 무리하게 2차원에서 3차원 차트를 구현할 수 있지만 일반적으로 권장하지 않는다.
따라서 차트를 그릴 때 2개의 변수 까지는 x, y 축에 맵핑하면 되는데 만약 z라는 변수까지 포함해서 차트를 그려야 한다면 z는 축이 아니라 다른 디자인 요소에 맵핑해야 한다. 일반적으로 다른 디자인 요소는 색, 모양, 크기가 있다. 예를 들어 <그림 1>의 3차원 차트에서 하나의 차원(변수)를 색에 맵핑한 경우의 차트는 <그림 2>와 같다
위의 차트를 척도의 개념으로 분해해보면 아래와 같다.
- X축 = Sepal.Length
- Y축 = Petal.Length
- 색 = Species
이제 이런 차트를 만들기 위한 ggplot2 구문을 보자.
library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Length, y=Petal.Length, color=Species)) + geom_point()
aes 뒤의 괄호안에 color=Species 를 추가했다. 즉, aes는 특정한 데이터(변수)를 특정한 척도(scale)에 맵핑 시킬 때 쓰는 구문이다. x, y 축은 굳이 지정하지 않아도 즉 x=, y=를 붙이지 않아도 자동으로 축이라는 것을 인식하기 때문에 붙이지 않아도 괜찮다.
위의 코드에서 Species 변수를 색이 아니라 모양 척도에 매핑 시키려면 shape = Species 로 바꾸면 된다. Species가 연속형 변수라면 size=Species으로 크기 척도에도 맵핑할 수 있다. 현재는 범주형 변수라 크기 척도에 맵핑하는 것은 부적합하다.
3. 단순히 차트의 점 색깔을 바꾸고 싶을 때
점의 색깔이 척도(scale) 역할을 하는 것이 아니라 단순히 미적인 관점에서 다른 색으로 바꾸고자 한다면 아래와 같은 코드로 구현가능하다.
library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point(color='red')
'ggplot2' 카테고리의 다른 글
4. 1개의 연속형 변수로 density 차트 만들기 (0) | 2022.03.12 |
---|---|
2. 데이터 타입과 차트 종류 (0) | 2022.03.07 |
1. ggplot2 기본구조 (0) | 2022.03.07 |
댓글