Data visualization/데이터시각화(R)

데이터시각화 R_ggplot2_mpg data

뉴욕킴 2023. 9. 3. 22:03
mpg data: 1999년부터 2008년까지 인기 차종의 연비에 대한 자료 분석

1. 패키지 설치

install.packages("tidyverse")

2. 라이브러리 불러오기

 library(tidyverse)

3. 데이터 불러오기

mpg
# A tibble: 234 × 11
   manufacturer model  displ  year   cyl trans drv     cty   hwy fl   
   <chr>        <chr>  <dbl> <int> <int> <chr> <chr> <int> <int> <chr>
 1 audi         a4       1.8  1999     4 auto… f        18    29 p    
 2 audi         a4       1.8  1999     4 manu… f        21    29 p    
 3 audi         a4       2    2008     4 manu… f        20    31 p    
 4 audi         a4       2    2008     4 auto… f        21    30 p    
 5 audi         a4       2.8  1999     6 auto… f        16    26 p    
 6 audi         a4       2.8  1999     6 manu… f        18    26 p    
 7 audi         a4       3.1  2008     6 auto… f        18    27 p    
 8 audi         a4 qu…   1.8  1999     4 manu… 4        18    26 p    
 9 audi         a4 qu…   1.8  1999     4 auto… 4        16    25 p    
10 audi         a4 qu…   2    2008     4 manu… 4        20    28 p    
# ℹ 224 more rows
# ℹ 1 more variable: class <chr>
# ℹ Use `print(n = ...)` to see more rows

4. x,y 설정 후 geom_point()를 이용해 산점도 그리기 

ggplot(mpg, aes(x = displ, y = hwy)) +
  geom_point()

# gglot 함수의 세가지 요소

  • data
  • aesthetic mappong
  • 적어도 하나의 layer-geom 함

5. 클래스 확인

table(mpg$class)

   2seater    compact    midsize    minivan     pickup 
         5         47         41         11         33 
subcompact        suv 
        35         62 

6. 칼라 지정 color=class

ggplot(mpg, aes(x = displ, y = hwy, color=class)) + geom_point()

7. shape 드라이브별로 다르게 지정

ggplot(mpg, aes(x = displ, y = hwy, shape=drv)) + geom_point()

8. table 생성

 table(mpg$cyl)
 4  5  6  8 
81  4 79 70 
class(mpg$cyl)
[1] "integer"
ggplot(mpg, aes(displ, cty, size = cty)) + geom_point()

ggplot(mpg, aes(displ, cty, color = cty)) + geom_point()

ggplot(mpg, aes(displ, hwy, color = class)) + geom_point()

class별로 쪼개서 그림 그릴 수 있음 

 ggplot(mpg, aes(displ, hwy)) + geom_point() +
 facet_wrap(~class)

ggplot(mpg, aes(displ, hwy)) + geom_point() + geom_smooth()

회귀분석 라인 그리기 : lm 

ggplot(mpg, aes(displ, hwy)) + geom_point() + geom_smooth(method="lm")

  • 평균에서 멀어짐 확인 

 

geom 종류
  • geom_smooth() : smooth line과 se를 표시
  • geom_boxplot() : 상자그림
  • geom_histogram(), geom_freqpoly() : 연속변수의 분포
  • geom_bar() : 막대그림
  • geom_path() : 점들을 자료 순서대로 선으로 연결한 그림
  • geom_line() : 산점도에서의 위치에 따라 왼쪽에서 오른쪽 순으로 모든 점들을 연결