ggplot2 에서 선을 그리는 방법은 다양하다. geom_line
, geom_segment
등을 가지고 평면위에 선을 그릴 수 있다. 아래 그래프는 ggplot2 로 그린 그래프이고, 막대그래프 중간에 보조선을 하나 그어줬다. 여기에 보면 점선으로 그려졌는데, 이것 말고도 여러가지 라인타입을 설정할 수 있고, 그 부분을 정리해볼까 한다.
데이터 만들기
2개의 막대그래프에 보조선하나 그릴 데이터를 하나 만든다. x값은 막대그래프 위치가 될것이고, y는 막대그래프 높이값, 그리고 z는 보조선의 y축값이 될것이다.
tb1 = tibble(x = c(1, 2),
y = c(3.5, 7.7),
z = 2)
# A tibble: 2 × 3
x y z
<dbl> <dbl> <dbl>
1 1 3.5 2
2 2 7.7 2
그래프 그리기
geom_col
함수로 막대그래프를 그린다.
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5)
그 위에 높이2인 막대그래프를 덧대어 그린다.
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray")
마지막으로 geom_segment
로 선을 하나 그려준다. 해당 geom_segment
함수 사용법은 여기를 클릭하여 참고한다. linetype
을 지정하지 않으면 그냥 실선으로 나온다.
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = 0, y = 2, xend = 3, yend = 2)
linetype
ggplot2 에서 선을 그리게 되면 linetype
을 지정하여 선종류를 변경할 수 있다. 하나씩 보고 필요한 선종류로 대체하면 된다.
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = 0, y = 2, xend = 3, yend = 2,
linetype = "solid")
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = 0, y = 2, xend = 3, yend = 2,
linetype = "dashed")
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = 0, y = 2, xend = 3, yend = 2,
linetype = "dotted")
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = 0, y = 2, xend = 3, yend = 2,
linetype = "dotdash")
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = 0, y = 2, xend = 3, yend = 2,
linetype = "longdash")
ggplot(tb1) +
geom_col(aes(x,y), width = 0.5) +
geom_col(aes(x,z), width = 0.5, fill = "gray") +
geom_segment(x = .5, y = 2, xend = 3, yend = 2,
linetype = "twodash")