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 |