티스토리 뷰

ggplot2 의 geom_density 함수를 이용해서 밀도 그래프를 그려보고자 한다. 대략 아래와 같은 그래프이고, 특정값의 빈도수를 가지고 밀도를 구해 그래프를 만드는 과정이다. ggplot2 를 이용해서 아래 그림을 만들어 볼까 한다.

 

저번 포스팅에서 사용한 데이터를 활용해본다.

 

ggplot2 - geom_histogram 으로 히스토그램 그래프 만들기

ggplot 에서는 막대그래프를 그리는 여러가지 방법이 있다. geom_bar, geom_col, geom_histogram 이 있는데, 대부분 geom_col 을 가지고 처리하지만, 이번에는 geom_histogram 으로 그려보려 한다. 최종결과는 아..

emflant.tistory.com

rent <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2022/2022-07-05/rent.csv')

rent_sanfrancisco1 = rent %>% filter(city == 'san francisco')

 

아래 코드 2줄을 실행하면 선만 있는 그래프가 그려진다. 

ggplot(rent_sanfrancisco1, aes(year)) +
  geom_density()

반응형

밀도함수의 x 값의 개수를 정할 수 있는데, 기본값은 512 라서, 매끄러운 곡선을 볼 수 있지만, 아래와 같이 10으로 지정하면 꺽은선 그래프와 같은 모양을 볼 수 있다.

ggplot(rent_sanfrancisco1, aes(year)) +
  geom_density(n = 10)

 

이번에는 색을 지정하는데, colour 는 라인의 색상이고, fill 은 하위영역에 대한 색을 지정하면 된다. 

ggplot(rent_sanfrancisco1, aes(year)) +
  geom_density(n = 1024, colour = "#B22727", fill = "#B22727")

 

스타일을 좀 정리하고나면 아래와 같은 그래프를 만들 수 있다. 

gplot(rent_sanfrancisco1, aes(year)) +
  geom_density(aes(year, ..count..), n = 1024, colour = "#F8CB2E", fill = "#F8CB2E",
               adjust = 2) +
  theme_void(base_family = "AppleSDGothicNeo-ExtraBold", base_size = 10) +
  theme(
    legend.position = "none",
    title = element_text(colour = "gray30"),
    axis.text.x = element_text(margin = margin(0.2,0,0,0,"cm"), size = 12, colour = "gray30"),
    plot.margin = margin(.7,1,1,1,"cm"),
    plot.background = element_rect(fill = "#F1F0EA", color = "#F1F0EA")
  )

 

 

마지막으로, adjust 변수를 입력하면 조금 더 완곡하거나 아니면 조금더 변동성이 드러나도록 조정할 수 있다. 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함