본문 바로가기

R

[R] 시각화 - stacked/group bar plot

x1 <- c(2,6,9,5)
x2 <- c(8,10,15,6)
data <- rbind(x1,x2)
name <- c('1팀','2팀','3팀','4팀')
label <- c('2020년','2021년')

stacked bar plot

barplot(height=data,
        names.arg = name, #막대그룹 아래에 표시할 이름의 벡터
        main='팀별실적',
        xlab='팀',
        ylab='판매실적',
        ylim=c(0,30),
        legend.text=label, #범례
        col=c('blue','green'))

group bar plot

barplot(height=data,
        names.arg = name,
        beside=TRUE,
        main='팀별실적',
        xlab='팀',ylab='판매실적',
        ylim=c(0,30),
        legend.text=label,
        col=c('blue','green'))


[문제156] fruits_sales.csv을 읽어 들인 후 년도별, 과일이름별 판매량을 그룹형 막대그래프로 시각화해주세요.

sale <- read.csv("c:/data/fruits_sales.csv",header=T)


1) 년도별, 과일이름별 판매량

① x <- tapply(sale$qty, list(sale$year,sale$name), sum)
② x <- xtabs(qty~name+year,sale)

2) group bar plot

barplot(x,
        beside=TRUE, #TRUE:그룹형
        xlab='년도',ylab='판매량',
        col=cm.colors(4),
        ylim=c(0,20))
#범례 설정
legend("topleft",legend = rownames(x),
       col=cm.colors(4),
       pch = 15,cex=0.5)
#그래프이름 설정
title(main="년도별 과일 판매량")


+) stacked bar plot

barplot(x,
        beside=FALSE, #FALSE:축적형
        xlab='년도',ylab='판매량',
        col=cm.colors(4),
        ylim=c(0,50))
#범례 설정
legend("topleft",legend = rownames(x),
       col=cm.colors(4),
       pch = 15,cex=0.5)
#그래프이름 설정
title(main="년도별 과일 판매량")

exam <- read.csv("c:/data/exam.csv",header = T)
library(RColorBrewer)

[문제157] exam.csv file에는 학생들의 시험점수가 있습니다. 학생들의 SQL 점수를 막대그래프로 출력해주세요.

barplot(exam[exam$subject=='SQL','grade'], 
        names.arg = exam[exam$subject=='SQL','name'], 
        las=2,
        col=brewer.pal(length(exam[exam$subject=='SQL','name']),'RdBu'),
        main = "SQL 점수",
        xlab="학생",
        ylab="점수",
        ylim=c(0,100),
        cex.names=0.9, 
        horiz=FALSE)

[문제158] exam.csv file에는 학생들의 시험점수가 있습니다. 학생들의 R 점수를 막대그래프로 출력해주세요.

barplot(exam[exam$subject=='R','grade'], 
        names.arg = exam[exam$subject=='R','name'], 
        las=2,
        col=brewer.pal(length(exam[exam$subject=='R','name']),'RdBu'),
        main = "R 점수",
        xlab="학생",
        ylab="점수",
        ylim=c(0,100),
        cex.names=0.9, 
        horiz=FALSE)

[문제159] exam.csv file에는 학생들의 시험점수가 있습니다. 학생들의 PYTHON 점수를 막대그래프로 출력해주세요.

barplot(exam[exam$subject=='PYTHON','grade'], 
        names.arg = exam[exam$subject=='PYTHON','name'], 
        las=2,
        col=brewer.pal(length(exam[exam$subject=='PYTHON','name']),'RdBu'),
        main = "PYTHON 점수",
        xlab="학생",
        ylab="점수",
        ylim=c(0,100),
        cex.names=0.9, 
        horiz=FALSE)

[문제160] exam.csv file에는 학생들의 시험점수가 있습니다. 학생들의 총 점수를 막대그래프로 출력해주세요.

exam_total <- aggregate(grade~name,exam,sum)
barplot(height=exam_total$grade, 
        names.arg = exam_total$name, 
        col=brewer.pal(length(exam_total$name),'RdBu'),
        las=2,
        main = "과목 총점수",
        ylim=c(0,300),
        cex.names=0.9, 
        horiz=FALSE)

[문제161] 학생들의 이름을 기준으로 과목점수를 스택형 막대그래프로 생성하세요.

t <- tapply(exam$grade,list(exam$subject,exam$name),sum)
bp <- barplot(t,
        names.arg = colnames(t),
        beside=FALSE,
        las=2,ylim=c(0,300),main='과목 총점수',
        cex.names=0.7,border=NA,
        col=rainbow(3))
legend('topright',legend=rownames(t),title='과목',pch=15,col=rainbow(3),cex=0.5)
abline(h=seq(100,300,50),col='red',lty=2) #점선

+) abline(h=seq(100,300,50),col='red',lty=2) : 점선

    seq(시작점,종점,간격)

[문제162] 학생들의 이름을 기준으로 과목점수를 그룹형 막대그래프로 생성하세요.

bp <- barplot(t,
        names.arg = colnames(t),
        beside=TRUE,
        las=2,ylim=c(0,100),main='과목 총점수',
        cex.names=0.7,border=NA,
        col=rainbow(3))
legend('topright',legend=rownames(t),title='과목',pch=15,col=rainbow(3),cex=0.5)

+)install.packages("plotrix") : 값 표시하기
library(plotrix)
plotrix::barlabels(bp,t,bg=rainbow(3),border=NA,cex=0.5)
plotrix::barlabels(txt x위치,txt y위치,수행할 문자열)

par(mfrow=c(1,1)) : 여러가지 그래프 비교(기본값)
par(mfrow=c(2,3)) : 그래프 총 6개 비교

graphics.off() : 화면상(plots) 나타난 그래프 지우기

 

'R' 카테고리의 다른 글

[R] 시각화 - 산점도 그래프(scatter plot)  (0) 2022.01.25
[R] bar plot 문제(실제 데이터 사용)  (0) 2022.01.25
[R] 시각화 - 막대그래프(barplot)  (0) 2022.01.25
[R] 빈도표  (0) 2022.01.25
[R] 시각화 - 원그래프(pie)  (0) 2022.01.25
Recent Posts
Popular Posts
Recent Comments