본문 바로가기
Programing/R

[R] 데이터 시각화의 기본 기능_많은 양의 데이터를 효과적으로 관찰

by 구루미94 2021. 10. 20.

1. 시각화를 사용했을 때 나타나는 효과

- 직관(insight)를 얻을 수 있다.

- 핵심을 명확하게 이해할 수 있다.

- 평균적인 경향과 더불어 이상값(outlier)도 발견할 수 있다.

- 데이터에서 문제를 빨리 찾아낼 수 있다.

 

2. gapminder 데이터의 직관적 이해

- 요약 통계를 추출하는 과정 없이도 시각화를 통해 데이터를 직관적으로 이해할 수 있다.

- 실습) gapminder 데이터에서 1인당 GDP에 따른 기대 수명을 대륙별로 살펴본다.(로그 스케일 사용)

plot(log10(gapminder$gdpPercap), gapminder$lifeExp, col = gapminder$continent)
legend("bottomright", legend = levels((gapminder$continent)), 
       pch = c(1:length(levels(gapminder$continent))),
       col = c(1:length(levels(y$continent))))

- 동일한 실습을 시각화 전용 라이브러리인 ggplot2를 사용해서 해본다.

library(ggplot2)
ggplot(gapminder, aes(x = gdpPercap, y = lifeExp, 
                      col = continent, size = pop)) + 
  geom_point() + scale_x_log10()

- 범례 표시를 위해 새로운 함수를 호출하고 변수를 다시 입력할 필요가 없다.

- size = pop을 추가하면 플롯 마커의 프기가 각 국가의 인구에 비례하도록 지정할 수 있다.

- 마커들이 중첩되어 가려지는 문제는 마커의 투명도를 설정해 해결할 수 있다.

- geom_point에 alpha = 0.5 추가.

library(ggplot2)
ggplot(gapminder, aes(x = gdpPercap, y = lifeExp, 
                      col = continent, size = pop)) + 
  geom_point(alpha = 0.5) + scale_x_log10()

- ggplot2의 facet_wrap 함수를 이용하면 관측 연도를 구분하여 표시하는 것 또한 가능하다.

ggplot(gapminder, aes(x = gdpPercap, y = lifeExp,
                      col = continent, size = pop)) +
  geom_point(alpha = 0.5) + scale_x_log10() + facet_wrap(~year)

728x90

댓글