막대그래프(barplot)
: 빈도표(도수분포표)를 활용하여 각 수준(도수)의 값(크기)을 높이(막대)로 표현하는 그래프
sales <- c(150,100,70,30)
team <- c("영업1팀","영업2팀","영업3팀","영업4팀")
세로막대 그래프
barplot(height=sales, #세로축 값
names.arg = team, #가로축 값
col=rainbow(length(sales)),
main = "영업팀별 영업 실적",
xlab="영업팀",#가로축 이름
ylab="영업실적(억억원)",#세로축 이름
ylim=c(0,200),#세로축 범위
cex.names=0.9, #이름폰트 크기
horiz=FALSE) #FALSE:세로막대
가로막대 그래프
barplot(height=sales, #세로축 값
names.arg = team, #가로축 값
col=rainbow(length(sales)),
main = "영업팀별 영업 실적",
xlab="영업팀",#가로축 이름
ylab="영업실적(억억원)",#세로축 이름
ylim=c(0,200),#세로축 범위
cex.names=0.9, #이름폰트 크기
horiz=TRUE) #TRUE:가로막대
[문제154] 부서별 인원수를 막대그래프로 시각화 해주세요.
t <- table(employees$DEPARTMENT_ID)
barplot(t)
[문제155] 부서이름별 총액급여에 대해 막대그래프를 생성하세요. 단, 부서가 없는 사원들의 총액급여도 포함해주세요.
1) 부서이름별 총액급여
dept_sal <- employees%>%
group_by(DEPARTMENT_ID)%>%
dplyr::summarise(sum_sal=sum(SALARY))
2) 부서가 없는 사원들의 총액급여도 포함하기 left join
result <- dept_sal%>%
dplyr::left_join(departments)%>%
select(DEPARTMENT_NAME,sum_sal)
result[is.na(result$DEPARTMENT_NAME),1] <- '부서(X)'
3) 막대그래프 만들기
bp <- barplot(height = result$sum_sal,
names.arg = result$DEPARTMENT_NAME,
col = rainbow(nrow(result)),
main = "부서이름별 총액",
xlab="부서이름",
ylab="총급여",
ylim=c(0,350000),
las=2,
cex.names=0.5,
cex.axis=0.5)
las=0 : 기본값. 축 방향
las=1 : 수평 방향( 축 방향과 상관 없음)
las=2 : 축을 기준으로 수직 방향
las=3 : 수직 방향(축의 방향과 상관없음)
4) 막대그래프에 값 표시하기
text(x=bp,
y=result$sum_sal,
labels=result$sum_sal,cex=0.5,pos=3)
pos=1 : 막대끝선의 아래쪽
pos=2 : 막대끝선의 왼쪽
pos=3 : 막대끝선의 위쪽
pos=4 : 막대끝선의 오른쪽
+)막대그래프에 최댓값, 최솟값만 값 표시하기
bp[result$sum_sal == max(result$sum_sal)]
#최댓값
text(x=bp[result$sum_sal == max(result$sum_sal)],
y=max(result$sum_sal),
labels=max(result$sum_sal),
cex=0.5,
pos=3,
col="red")
#최솟값
text(x=bp[result$sum_sal == min(result$sum_sal)],
y=min(result$sum_sal),
labels=min(result$sum_sal),
cex=0.5,
pos=3,
col="red")
'R' 카테고리의 다른 글
[R] bar plot 문제(실제 데이터 사용) (0) | 2022.01.25 |
---|---|
[R] 시각화 - stacked/group bar plot (0) | 2022.01.25 |
[R] 빈도표 (0) | 2022.01.25 |
[R] 시각화 - 원그래프(pie) (0) | 2022.01.25 |
[R] sqldf (0) | 2022.01.20 |