본문 바로가기
R tidyverse/하루만에 끝내는 ggplot2

[ggplot2의 이해] 8. 히스토그램 (geom_histogram)

by 만다린망고 2023. 2. 10.
반응형

1. 히스토그램 그리기

내장 데이터인 mpg를 이용하여 박스플롯을 그려보았습니다. hwy 라는 열을 사용할 것인데, hwy 는 highway miles per gallon 입니다. 연비라고 생각하면 됩니다. 그래프를 그려봅시다. 다양한 옵션들을 넣어보았는데 필요 없는 것은 제거하고 사용하시면 됩니다. 설명은 주석에 있습니다. 

library(tidyverse)

ggplot()+
  geom_histogram(data=mpg,aes(x=hwy))+ #binwidth 로 간격 조절 가능
  labs(title="geom_histogram",x='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))                        #범례 위치

 

 

2. 히스토그램 그리기 (전체 넓이를 1로)

히스토그램 전체 넓이를 1로 만들어서 확률밀도함수 처럼 만드는 옵션이 있습니다. y=..density.. 를 aes 안에 추가하면 됩니다. 

 

library(tidyverse)

ggplot()+
  geom_histogram(data=mpg,aes(x=hwy,y=..density..))+ #binwidth 로 간격 조절 가능
  labs(title="geom_histogram",x='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))                        #범례 위치

 

 

3. 히스토그램 그리기 (x축 눈금 설정)

x축 눈금을 설정할 때는 scale_x_continuous 을 사용합니다. 설정 방법은 아래 코드에 추가했습니다. 

library(tidyverse)

ggplot()+
  geom_histogram(data=mpg,aes(x=hwy,y=..density..))+ #binwidth 로 간격 조절 가능
  labs(title="geom_histogram",x='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))+                        #범례 위치
  scale_x_continuous(breaks = seq(10, 50, 5), lim = c(10, 45))  #x축 눈금 설정

 

 

반응형

댓글