R study

데이터 시각화(Aesthetic Mappings)

발킴이 2023. 2. 22. 16:14

1. What’s gone wrong with this code? Why are the points not blue?

library(tidyverse)
ggplot(data=mpg)+
  geom_point(
    mapping=aes(x=displ,y=hwy,color="blue")
  )

 Aesthetic이라는 개념을 약간이나마 이해하는데 이 문제가 많은 도움을 줬다. Aesthetic은 시각적인 표현을 나타내는 것이다. "심미성"이라고 번역되지만 한국어임에도 직관적이지 못한 표현이다.

 그냥 간단하게 데이터를 눈에 보이게 해주는 장치라고 이해했다.(아닐 수도 있다...) 이 문제의 요점은 Aesthetic이 데이터를 어떻게 보여주는지에 대한 것이다. Aesthetic은 대게 mapping과 함께 쓰인다. 여기서 Aesthetic의 성질이 나타난다. 바로 데이터를 연관시켜 표현해 준다는 것이다. x와 y를 연관시켜 정확한 위치에 점을 찍는 것처럼, color도 연관시켜서 표현해 준다. 즉, x와 y 값에 더해 색깔까지 연관시켜 시각화한 것이다.

 여기서 문제는 blue라는 것이 색깔이 아니라 하나의 값을 나타낸다는 점이다. 그런데 mpg데이터에는 blue라는 값이 존재하지 않는다. 그래서 그냥 모든 값을 blue로 처리하고 동일한 색상으로 표현한 것 같다.(이것도 그냥 내 생각이다...)

진짜 색깔을 blue로 바꾸기 위해서는 다음과 같이 코드를 수정하면 된다.

library(tidyverse)
ggplot(data=mpg)+
  geom_point(
    mapping=aes(x=displ,y=hwy),color="blue"
  )

 이렇게 되면 Aesthetic 테두리 밖에 color가 위치하게 된다. 즉, 여기서 color는 geom_point의 매개변수인 것이다. color는 더 이상 데이터 값과의 맵핑을 신경 쓰지 않아도 된다. 그냥 점의 색깔만 파란색으로 변한다. 자세히 보면 범례도 사라졌다는 것을 알 수 있다. color는 점의 색깔만을 나타내지 x와 y의 값과 연관된 색깔을 나타내는 것이 아니기 때문이다.

2. What does the stroke aesthetic do? What shapes does it work with? (Hint: use? geom_point)

ggplot(data=mpg)+
  geom_point(
    mapping=aes(x=displ,y=hwy),stroke=1,size=5,fill="white",shape=21
  )

 stroke 매개변수는 geom_point안에 속한다. 간단하게 말하면 윤곽선이다. 대신 주의해야 할 점이 있는데 윤곽선이 있는 도형에 적용해야 한다는 것이다. 그래서 shape을 21로 설정했다. 윤곽선의 색과 도형의 채워진 색이 다르면 적용 가능하다

3. What happens if you map an aesthetic to something other than a variable name, like aes(colour = displ < 5)? Note, you’ll also need to specify x and y.

ggplot(data=mpg)+
  geom_point(
    mapping=aes(x=displ,y=hwy,color=displ<5)
  )

 mpg 데이터에서 displ은 engine displacement 즉, 엔진 배기량을 나타낸 것이다. displ은 x 축의 변수로 역할을 하고 있기 때문에 displ <5는 간단하게 displ=5인 축을 기점으로 이상은 빨간색, 미만은 초록색으로 표현된다. 주목해야 할 점은 범례가 TRUE, FALSE로 표현된다는 것이다.

 

 오늘은 Aesthetic mapping에 대해서 알아봤다. [R을 활용한 데이터 과학]이라는 책을 참고해서 공부했다. 수업을 들으면서 잘 이해되지 않았던 부분이었는데 책의 도움을 빌려 약간 감을 잡은 것 같다. 앞으로 데이터를 시각화해야 하는 일이 생기면  Aesthetic을 아주 유용하게 잘 쓸 것 같다.