ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Bar Graph II - 막대그래프
    R/Data Visualization 2022. 10. 1. 06:18

    막대그래프를 그리는 방법을 살펴보기 위해서 R에 내장되어 있는 mtcars 파일을 사용하였다. 

     

    mtcars 파일을 좀 살펴보면...

    str(mtcars)
    
    'data.frame':	32 obs. of  11 variables:
     $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
     $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
     $ disp: num  160 160 108 258 360 ...
     $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
     $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
     $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
     $ qsec: num  16.5 17 18.6 19.4 17 ...
     $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
     $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
     $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
     $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

    여러 변수 들 중, cyl 변수와 gear 변수를 토대로 막대그래프를 그려보았다. 이 전에 cly 변수와 gear 변수의 빈도표를 살펴보았다.

    car_cyl <- table(mtcars$cyl)
    car_cyl
    
    4  6  8 
    11  7 14 
    
    table(mtcars$gear)
    
     3  4  5 
    15 12  5

    mtcars$cyl을 car_cyl에 할당하였고, car_cyl의 가장 기초적인 막대그래프를 그려보았다.

    barplot(car_cyl, main= "cylinder types of cars", 
            xlab = "number of cylinder")

    main에는 그래프의 제목을, xlab에는 가로축에 나타낼 제목을 적어주면 된다. 그 결과..

    만약 각각의 막대그래프에 색을 넣어주고 싶다면 col = c(" 색", "색", "색")을 넣어주면 된다. 

    barplot(car_cyl, main= "cylinder types of cars", 
            xlab = "number of cylinder",
            col = c("light blue", "light green", "grey"))

    y 축에도 제목을 넣어주고 싶다면 ylab = " " 을 추가해주면 된다. 

    barplot(car_cyl, main= "cylinder types of cars", 
            xlab = "number of cylinder",
            ylab = "frequency",
            col = c("light blue", "light green", "grey"))

    가로축에 4,6,8 은 데이터에 있는 값을 가져온 것인데 이것 대신에 이름을 할당할 수 있다. names.arg를 사용하면 된다. 그리고 코드에 보면 horiz=FALSE라고 되어 있는데 그래프를 수평으로 놓을 것인지에 대한 설정이다. 

    barplot(car_cyl, main= "cylinder types of cars", horiz = FALSE,
            names.arg = c("4 cylinder", "6cylinder", "8cylinder"),
            col = c("Sky Blue1" , "Light Pink1" , "Pale Green1"),
            xlab = "cylinder types",
            ylab = "Frequency")

    그래프를 수평으로 놓고 싶다면 horiz = TRUE로 설정하면 되고 xlab과 ylab의 값을 바꿔주면 된다. 

    barplot(car_cyl, main= "cylinder types of cars", horiz = TRUE,
            names.arg = c("4 cylinder", "6cylinder", "8cylinder"),
            col = c("Sky Blue1" , "Light Pink1" , "Pale Green1"),
            xlab = "Frequencies",
            ylab = "Cylinder types")

    지금까지는 한개의 변수만을 이용해서 막대그래프를 그렸다면, 이제는 두개의 변수(gear와 cyl)를 이용하여 막대그래프를 그려보았다. 행의 값 3,4,5가 gear 변수의 값이고, 열의 4,6,8이 cylinder의 값이다. 

    car_cyl_gear <- table(mtcars$gear, mtcars$cyl)
    car_cyl_gear
    
         4  6  8
      3  1  2 12
      4  8  4  0
      5  2  1  2

    legend의 위치는 조정이 필요하지만 일단, 각각의 그래프는 cylinder type을 나타내고 그 안에 gear의 분포를 보여주고 있다.

    barplot(car_cyl_gear, main="Car by cylinder and gear",
            xlab="Cylinder Types", 
            ylab="Frequency",
            col=c("Sky Blue1" , "Light Pink1" , "Pale Green1"),
            legend = rownames(car_cyl_gear))

    cylinder type 별, gear의 종류에 따른 막대그래프를 그리기 위해 beside=TRUE를 추가해주면 된다.

    barplot(car_cyl_gear, main="Car by cylinder and gear",
            xlab="Cylinder Types",
            ylab="Frequency",
            col=c("Sky Blue1" , "Light Pink1" , "Pale Green1"),
            legend = rownames(car_cyl_gear), beside=TRUE)

    'R > Data Visualization' 카테고리의 다른 글

    Box Plot 그리기(boxplot)  (0) 2022.03.09
    원그래프 pie -1 (pie3D)  (0) 2021.10.20
    막대그래프 barplot - 1  (0) 2021.10.19
    막대그래프 qplot - 1  (0) 2021.10.19

    댓글

Designed by Tistory.