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이 디폴트
- 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 |