DS Study/R4DS(R언어)

[R4DS] [1-7] 좌표계

23학번이수현 2024. 3. 30. 17:46

1. 좌표계 

- 좌표계는 ggplot2에서 가장 복잡한 부분

- 기본적인 좌표계는 x,y가 서로 독립적으로 움직이는 데카르트좌표계

- 이것말고도 다른 좌표계에 대해서 알아보자.

 

2. coord_flip()

- x,y축을 바꾼다. 

- ex) 수평 박스 플롯이 필요할 때 유용함 

- 라벨이 길어서 x축과 겹치지 않고 들어 맞게 하기 힘들경우에도 유용함

ggplot(data = mpg, mapping =aes(x = class, y = hwy)) + 
    geom_boxplot()

ggplot(data = mpg, mapping =aes(x = class, y = hwy)) + 
    geom_boxplot() + 
    coord_flip()

- 더 시각적으로 편안함을 준다는 것을 알 수 있다. 

 

3. coord_quickmap()

- 지도에 맞게 가로세로 비율이 설정됨

- ggplot으로 공간 데이터를 플롯할 때 매우 중요

nz <- map_data("nz")

ggplot(nz,aes(long, lat, group = group)) + 
    geom_polygon(fill = "white", color = "black")

- 해당 플롯은 비율이 안맞음을 볼 수 있다.

nz <- map_data("nz")

ggplot(nz,aes(long, lat, group = group)) + 
    geom_polygon(fill = "white", color = "black") + 
    coord_quickmap()

- coord_quickmap()을 이용하면 다음과 같이 실제 지도의 비율에 맞게 조정된다.

 

3. coord_polar()

- 극좌표를 사용

- 극좌표를 사용하면 막대그래프와 Coxcomb 차트 사이의 흥미로운 관계를 볼수 있음

bar <- ggplot(data = diamonds) + 
    geom_bar(
        mapping = aes(x = cut, fill = cut),
        show.legend = FALSE,
        width = 1
    ) +
    theme(aspect.ratio = 1) +
    labs(x = NULL , y= NULL)

- 우선 다음과 같이 막대 그래프를 설정해주고

bar + coord_flip()

bar + coord_polar()

- 조금더 보기 좋게 극좌표식으로 나타낼수있다.

 

4. 연습문제

Q1) coord_polar()를 사용하여 누적 막대 그래프를 파이차트로 바꾸시오.

a <- ggplot(
    data = diamonds,
    mapping = aes(x = cut , fill = clarity)
) + 
    geom_bar(alpha = 1/5 , position = "identity")

a + coord_polar()

 

Q2) coord_quickmap() 과 coord_map()의 차이점은 무엇인가? 

- coord_quickmap() , coord_map()의 차이는 격자점이 얼마나 촘촘하냐 아니냐의 차이