반응형
ggplot2 에서 제공하는 막대그래프는 두 종류가 있습니다. geom_bar 와 geom_col 입니다.
geom_bar 는 하나의 범주형 변수를 이용하여 막대그래프를 그립니다. 예를들어 데이터가 (사과,사과,귤,바나나,바나나,바나나) 라면 세개의 막대가 그려집니다. 이때 세로축은 원소의 수가 됩니다.
geom_col 은 범주형 독립변수와 연속형 종속변수를 이용하여 막대그래프를 그립니다. 이번 글에서는 geom_bar 를 이용해서 막대그래프를 그려봅시다.
1. 막대그래프 그리기
내장 데이터인 mpg를 이용하여 막대그래프를 그려보았습니다. mpg 는 자동차 데이터입니다. 총 11개의 독립변수가 있는데요. 이들 중 , manufacturer(제조사) 를 사용하겠습니다. 그래프를 그리면 제조사 별로 차가 몇대씩 데이터에 포함되어 있는지 알 수 있습니다.
library(tidyverse)
ggplot()+
geom_bar(data=mpg,aes(x=manufacturer))+
labs(title="geom_bar",x='manufacturer',y='count')+ #제목, 축이름
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축 눈금 레이블 회전
2. 막대그래프 그리기 (독립변수 2개)
'제조사'와 'drive train 종류'라는 두개의 독립변수로 막대그래프를 그려봅시다. 위에서 그린 그래프에서 fill=drv 를 추가하면 됩니다.
library(tidyverse)
ggplot()+
geom_bar(data=mpg,aes(x=manufacturer,fill=drv))+
labs(title="geom_bar",x='manufacturer',y='count')+ #제목, 축이름
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.96,0.9)) #범례 위치
position 옵션을 dodge 로 바꾸면 아래와 같은 형태로도 출력할 수 있습니다.
library(tidyverse)
ggplot()+
geom_bar(data=mpg,aes(x=manufacturer,fill=drv),position='dodge')+
labs(title="geom_bar",x='manufacturer',y='count')+ #제목, 축이름
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)) #범례 위치
반응형
'R tidyverse > 하루만에 끝내는 ggplot2' 카테고리의 다른 글
[ggplot2의 이해] 8. 히스토그램 (geom_histogram) (0) | 2023.02.10 |
---|---|
[ggplot2의 이해] 7. 값을 출력하는 막대그래프 (geom_col) (0) | 2023.02.08 |
[ggplot2의 이해] 5. 박스플롯 (geom_boxplot) (0) | 2023.02.06 |
[ggplot2의 이해] 4. 선그래프 (geom_line) (0) | 2023.02.06 |
[ggplot2의 이해] 3. 산점도 (geom_point) (0) | 2023.02.03 |
댓글