We-Co

[R] barplot() - 막대 그래프를 사용해보자! 본문

R

[R] barplot() - 막대 그래프를 사용해보자!

위기의코딩맨 2024. 3. 7. 17:11
반응형

안녕하세요. 위기의코딩맨입니다.

오늘은 간단하게 barplot()에 대해서 알아보도록 하겠습니다.

 

위의 이미지와 같이 데이터를 막대형식으로 시각화하는 방법입니다.

재밌겟죠??ㅎㅎㅎ

 

[ barplot() ]

바로 실습을 진행하며 사용법을 익혀보도록 하시죠!

R에서 기본적으로 제공되는 mtcars 데이터의 cyl의 컬럼 데이터를 가져와서 시각화해보겠습니다.

(counts <- table(mtcars["cyl"]))

barplot(counts, horiz=TRUE, names.arg = c("4 cy1","6 cy1", "8 cy1"))

 

counts에 해당 11 ,7, 14의 데이터를 넣고

barplot() 함수에 데이터를 적용합니다. horiz는 TRUE로 설정하면 수평막대 그래프로 변환됩니다.

name은 3개의 데이터의 이름을 설정하게 됩니다.

아래 출력입니다.

 

 

다른 방식의 막대그래프를 그려보도록 하겠습니다.

cyl 데이터와 gear 데이터를 표현해보도록 하겠습니다.

위와 같이 데이터를 적용하고 막대의 색을 지정합니다. 그리고 beside를 TRUE로 설정하면  병렬로 그래프가 생성되고

FALSE로 설정하면 누적 데이터로 그래프가 생성됩니다. legend는 옆의 네모칸의 막대 그래프의 종류를 표현합니다.

(counts <- table(mtcars$cyl, mtcars$gear))

barplot(counts, col = c("red", "green", "orange"), beside=TRUE, legend=rownames((counts)))

조금 더 복잡하게 만들어볼까요~?

하나의 테이블을 만들어봅니다.

 A <- c(5)
 B <- c(10)
 C <- c(6)
 D <- c(15)
 E <- c(0)
 myData <- data.frame(A,B,C,D,E)

 

데이터를 기반으로 막대그래프의 색상을  변경했습니다.

for(i in 1:length(myData)){
     if(myData[i]>=8){
         col <- c(col,"yellow")
     }else if(myData[i] <= 5){
         col <- c(col,"red")
     }else{
         col <- c(col, "green")
     }
 }

 

chart_A를 만들었습니다. 해당 정보를 넣어주고 main으로 이름을 설정하고, 

y좌표의 이름을 설정, 이름은 A~E로 설정하고 col의 색상은 위의 col로 적용했습니다.

마지막으로는 0~15값으로 범위를 제한했습니다.

 

text는 chart_A의 기반으로 적용했습니다. 

pct는 해당 정보의 건수를 퍼센트로 변경한 값을 적용했습니다.

그리고 막대 그래프에 검은색 글자형식으로 해당 ( 0%) 형식으로 문자열을 적용했습니다.

chart_A <- barplot(as.vector(t(myData)), main="myData Barplot", ylab="불만건수", names.arg=colnames(myData), col= col,ylim=c(0,15))

pct <- round(as.vector(t(myData))/sum(as.vector(t(myData)))*100,1)

text(x <- chart_A, y=as.vector(t(myData))-0.5, labels=paste("(",pct,”%)”),col="black",cex=0.7)

 

결과물입니다.

D는 전체의 약 42%를 차지하고 있군요!

색상은 임의로 설정한거라 표현하고 싶은대로 변경하면 좋을것 같습니다.

 

오늘은 간단하게 barplot()에 대해서 알아보았습니다.

다양하게 막대그래프를 표현할 수 있기에 공부할 것도 많을 것 같습니다.

반응형