본문 바로가기

R

3. 패키지_ggplot2

2️⃣ ggplot2 패키지 

- 시각화의 대표적인 패키지

- 그래프 그릴 때 가장 자주 사용

- 데이터 시각화에 효과적 : 직관적, 편리, 효율성

 

ggplot2 시각화 과정

1) 그래프 그릴 공간 마련

2) xy축, 형태, 색 변수 선택

3) 그래프 유형 선택

4) 범례(항목), 제목 설정

 

패키지 사용 방법

install.packages("ggplot2") # 설치

library(ggplot2) # 불러오기 시 따옴표 적지 않아도 됨!

ggplot(데이터 프레임 이름, aes(x=변수1, y=변수2, fill=변수3))

- ggplot2 패키지 안에 ggplot이라는 함수가 있음.

- aes는 aesthetic의 약자. 그래프의 틀 결정하는 함수

- x, y는 각각 x축과 y축 의미

- fill은 색상에 활용한 변수

- dplyr 안 쓸거면 위의 구조로 쓴다

 

ggplot 함수 사용 방법

데이터 이름 %>%  # 체인함수
ggplot(aes(x=변수1, y=변수2, fill=변수3)) +
geom_그래프 종류() # 그래프 유형 설정하는 함수는 geom = geometric object(기하학적 도형)

- dplyr 패키지 함수는 %>% 연결되는 반면 ggplot2 패키지 함수는 +로 연결된다

 

그래프 종류 맛보기

1) 선 그래프 geom_line()

geom_line(color="색깔", size=숫자) #size는 굵기를 나타냄

- 두 변수 간의 관계 파악에 유리

ex) R에 내장된 pressure 데이터로 적용해보면?

pressure %>%
ggplot(aes(x=temperature, y=pressure)) +  #ggplot2에서 함수 연결은 +로 한다
geom_line(color="blue", size=1)

 

2) 빈도 그래프 geom_bar()

geom_bar(position="dodge")

- y축 없이 x축만 지정해야 함. y축 적으면 오류 나옴

- 빈도 그래프를 누적(stacked)으로 그릴 때는 position 인자에 "stack"이라고 적어 주면 됨

- stack이 기본 옵션이기 때문에 "dodge"라고 적지 않으면 stack으로 나옴

- dodge는 값을 겹치지 않게 떨어뜨려 놓은 형태

ex.

df_midterm %>%
ggplot(aes(x=math, fill=class)) +  # fill 변수에 class를 추가하면 색상이 설정됨
geom_bar(position="dodge") # 기본값은 stack

 

 

3) 산점도 geom_point()

geom_point(color="색깔", size=숫자)

- 점 그래프. 두 변수 간의 관계 파악에 유리

- 선형, 비선형 등 형태에 따라 상관관계 파악 가능

- 다른 그래프에 추가하는 식으로 사용할 수도 있음

 

ex1. 영어 성적과 수학 성적의 관계

df_midterm %>%
ggplot(aes(x=math, y=english)) +
geom_point() #색상이나 사이즈 설정 안 해도 작동됨

ex2. 그래프에 점 추가하기

pressure %>%
ggplot(aes(x=temperature, y=pressure)) +
geom_line(color="blue", size=1) +   # 선 그래프
geom_point(color="orange", size=2)  # 산점도

- 선 위에 점을 추가하면 데이터 값을 더 쉽게 파악할 수 있다

 

4) 막대그래프 geom_col()

geom_col(position = "dodge")

- 빈도 그래프와 비슷하지만, x축과 y축 모두 필요함!

ex.

df_final %>%
ggplot(aes(x=class, y=korean, fill=scholarship)) +  # 장학금을 탔냐 못 탔냐 기준으로 나눔
geom_col()  # stack이 디폴트

stack은 무지개떡
dodge는 늘여놓기

- 1반 애들은 국어 성적이 낮은 애들이 장학금을 받았음

- 2반 애들은 국어 성적이 높은 애들이 장학금을 받았음

- 장학금과 국어 성적 사이의 상관관계를 유추해볼 수 있음

**기말고사 성적 데이터 세팅

scholarship <- c("YES", "YES", "YES", "NO", "NO", "NO")
class <- c("1", "2", "3", "1", "2", "3")
korean <- c(100, 94, 89, 40, 50, 67)
df_final <- data.frame(scholarship, class, korean) 
#벡터를 합쳐서 데이터프레임 만들기

 

'R' 카테고리의 다른 글

4. 비정형 데이터와 텍스트마이닝  (0) 2022.07.15
2. 패키지_dplyr  (0) 2022.07.14
1. 데이터/데이터 분석이란?  (0) 2022.07.14
1-3. 데이터 형식  (0) 2022.06.25