# naver search confirm # markdown number and equation 1. ggplot2 기본구조 //google adsense
본문 바로가기
ggplot2

1. ggplot2 기본구조

by 노마드분석가 2022. 3. 7.

1. 들어가며

데이터 시각화의 목적은 크게 두가지이다.

  • 탐색적 데이터 분석 : 데이터의 특징을 빠르게 파악하고 숨겨진 사실을 쉽게 발견하기 위해 사람의 인지적 능력을 촉진시키기 위한 목적
  • 메시지(인사이트) 전달 목적 : 분석 결과를 이해 관계자들에게 효과적으로 전달하고 공유하기 위한 목적

2. 처음부터 ggplot2을 학습해야 하는 이유

탐색적 데이터 분석을 위한 시각화는 R의 기본 Plot 기능만으로 충분하다. 그러나 데이터 분석가의 일이 탐색적 분석에서 끝나는 일은 거의 없고 대부분 분석 결과를 이해관계자에게 최종적으로 전달하는 일 까지 맡아야 한다. 따라서 풍부한 디자인 기능까지 포함하는 ggplot2를 배우는 것이 좋다. 또한 R의 자체 Plot 문법과 ggplot2의 문법이 약간 다르기 때문에 처음부터 ggplot2로 시각화하는 습관을 들이는 것이 나중을 위해서 더 나은 시작이다. 

 

3. ggplot2의 기본 구조

처음 ggplot2을 사용하려면 문법이 다소 장황해 보이고 헷갈린다. 또한 여러 책이나 사이트에서도 레이어(layer)의 충접 개념으로 설명하는데 초보자에게는 더 혼란스럽다. 우선 ggplot2의 기본 구조를 아래 <그림 1>처럼 확실하게 익혀두자. 

 

[그림 1] ggplot2 기본 구조

 

<그림 1>에 ggplot2의 핵심 정보가 있다. 

 

  • ggplot : 무조건 이 명령어로 시작하고 괄호 안에는 시각화 할 데이터 이름을 지정한다
  • aes : aes는 x, y 축에 특정 데이터를 맵핑할 때 등장한다. 즉, 어떤 변수를 x, y로 지정할 것인가 나타낸다. 
  • + : 플러스 기호는 차트에 필요한 정보를 계속 더한다는 의미다. 차트에 이것저것 정보를 더 하거나 꾸미려면 계속 +를 사용해 객체를 더한다.
  • : 어떤 차트를 그릴 것인지 선택한다. 당연히 데이터에 따라 그릴 수 있는 차트 종류는 다르다.  

위의 기본 구조 중에서 어느 한 요소라도 빠지면 ggplot2는 차트를 그리지 못한다. 이제 기본 구조를 이용해 간단한 차트를 하나 그려보자

# 첫번째 코드
library(ggplot2)
ggplot(data=iris, aes(x=Sepal.Length, y=Petal.Length)) + geom_point()

 

iris 데이터를 이용하고 변수 중에서 x=Sepal.Length, y=Petal.Length로 지정하고 산포도(geom_point) 그리겠다는 명령어를 충실하게 수행했다. 

 

4. 기본 구조에서 응용

이제 기본 구조에서 아주 약간만 변화를 줘 보자. 

 

#두번째 코드
library(ggplot2)
ggplot(data=iris,aes(Sepal.Length)) + geom_density()

 

첫번째 코드와 비교해서 달라진 것을 보자

  • geom_point( )  ----> geom_density( ) : 그리려는 차트가 산포도가 아니라 밀도 함수라는 말이다
  • aes(x=Sepal.Length, y=Petal.Length) ----->aes(Sepal.Length)

두번째 aes의 변화는 aes의 의미를 알기 위해 중요한 예다. 첫번째 코드는 산포도를 그리려고 했으므로 당연히 x, y 축에 어떤 변수가 맵핑되어야 하는지 지정해야 한다. 그러나 밀도 함수는 y축 값이 확률로 자동 고정되므로 x축만 어떤 변수로 맵핑할지 지정하면 된다. 따라서 aes(Sepal.Length) 라고만 지정해도 되는 것이다. aes(x=Sepal.Length)와 같은 말인데 단순히 'x=' 를 생략했다. 

 

결과를 그림과 같다. 

 

가장 단순한 ggplot2 사용문법을 소개했는데, 더 복잡한 차트를 생성하기 전에 위에서 설명한 ggplot2의 기본구조를 반드시 외워 두고 학습을 진행해야 헷갈리지 않을 뿐더러 더 멋진 차트를 만드는 실력을 기를 수 있다. 

 

다음글

 

2. 데이터 타입과 차트 종류

이전글 1. ggplot2 기본구조 1. 들어가며 목적지를 향해 떠나기 전에 좋은 지도를 갖추는 것은 필수적이다. 데이터 시각화를 하기 전에 먼저 주어진 데이터로 어떤 차트를 그릴 수 있는지 파악하고

diseny.tistory.com

 

반응형

'ggplot2' 카테고리의 다른 글

4. 1개의 연속형 변수로 density 차트 만들기  (0) 2022.03.12
3. aes 요소 추가  (0) 2022.03.10
2. 데이터 타입과 차트 종류  (0) 2022.03.07

댓글