반응형
ggplot2 에서 제공하는 막대그래프는 두 종류가 있습니다. geom_bar 와 geom_col 입니다.
geom_bar 는 하나의 범주형 변수를 이용하여 막대그래프를 그립니다. 예를들어 데이터가 (사과,사과,귤,바나나,바나나,바나나) 라면 세개의 막대가 그려집니다. 이때 세로축은 원소의 수가 됩니다.
geom_col 은 범주형 독립변수와 연속형 종속변수를 이용하여 막대그래프를 그립니다. 이번 글에서는 geom_col 를 이용해서 막대그래프를 그려봅시다.
1. 막대그래프 그리기
내장 데이터인 mpg를 이용하여 막대그래프를 그려보았습니다. mpg 는 자동차 데이터입니다. 총 11개의 변수가 있는데요. 독립변수로 class 를 선택하고, 종속변수로 hwy 를 선택하겠습니다. class 는 차의 타입이고, hwy 는 연료효율입니다. 연료효율을 전부 더한 결과를 출력하기 때문에 결과에 큰 의미는 없습니다.
library(tidyverse)
ggplot()+
geom_col(data=mpg,aes(x=class,y=hwy))+
labs(title="geom_col",x='class',y='hwy')+ #제목, 축이름
theme(title = element_text(size=20,face='bold'))+ #제목 서식
theme(axis.title = element_text(size=10,face='bold'))+ #축서식
theme(plot.title = element_text(hjust = 0.5))+ #제목 가운데 정렬
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ #x축 눈금 레이블 회전
theme(legend.title = element_text(size=10,face='bold'))+ #범례 제목 서식
theme(legend.text = element_text(size=10))+ #범례 이름 서식
theme(legend.position = c(0.04,0.9)) #범례 위치
2. 막대그래프 그리기 (독립변수 2개)
독립변수를 하나 더 늘려봅시다. fl(연료 종류)를 추가하겠습니다. fill 을 이용하면 됩니다.
library(tidyverse)
ggplot()+
geom_col(data=mpg,aes(x=class,y=hwy,fill=fl))+
labs(title="geom_col",x='class',y='hwy')+ #제목, 축이름
theme(title = element_text(size=20,face='bold'))+ #제목 서식
theme(axis.title = element_text(size=10,face='bold'))+ #축서식
theme(plot.title = element_text(hjust = 0.5))+ #제목 가운데 정렬
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ #x축 눈금 레이블 회전
theme(legend.title = element_text(size=10,face='bold'))+ #범례 제목 서식
theme(legend.text = element_text(size=10))+ #범례 이름 서식
theme(legend.position = c(0.04,0.85)) #범례 위치
position 옵션을 dodge 로 바꾸면 아래와 같은 형태로도 출력할 수 있습니다.
library(tidyverse)
ggplot()+
geom_col(data=mpg,aes(x=class,y=hwy,fill=fl),position='dodge')+
labs(title="geom_col",x='class',y='hwy')+ #제목, 축이름
theme(title = element_text(size=20,face='bold'))+ #제목 서식
theme(axis.title = element_text(size=10,face='bold'))+ #축서식
theme(plot.title = element_text(hjust = 0.5))+ #제목 가운데 정렬
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+ #x축 눈금 레이블 회전
theme(legend.title = element_text(size=10,face='bold'))+ #범례 제목 서식
theme(legend.text = element_text(size=10))+ #범례 이름 서식
theme(legend.position = c(0.04,0.85)) #범례 위치
반응형
'R tidyverse > 하루만에 끝내는 ggplot2' 카테고리의 다른 글
[ggplot2의 이해] 8. 히스토그램 (geom_histogram) (0) | 2023.02.10 |
---|---|
[ggplot2의 이해] 6. 원소 수를 출력하는 막대그래프 (geom_bar) (0) | 2023.02.07 |
[ggplot2의 이해] 5. 박스플롯 (geom_boxplot) (0) | 2023.02.06 |
[ggplot2의 이해] 4. 선그래프 (geom_line) (0) | 2023.02.06 |
[ggplot2의 이해] 3. 산점도 (geom_point) (0) | 2023.02.03 |
댓글