안녕하세요 구도입니다.


오늘은 R 히스토그램에서 y축을 상대도수로 하는 법, 줄기-잎 그림 그리는 법, 박스플롯, 히스토그램과 상자그림을 동시에 그리는 방법에 대해 배워보도록 하겠습니다.


작성한 코드만 보고 이해하시지 말고 프로그램에서 직접 실습해보시면서 공부하시면 이해가 훨씬 빠르시답니다.


*프로그램은 'R x64 3.5.1' 을 사용하였습니다*



# 배열 만들기

height1 <- c(4,18,5,8)  #그룹 1값 할당

height2 <- c(9,15,20,6) #그룹 2값 할당


height <- rbind(height1, height2)

height


name <- c("영업 1팀", "영업 2팀", "영업 3팀", "영업 4팀")   # 그룹 이름 할당

legend_lb1 <- c("2014년", "2015년")  # 범례 라벨 만들기


height_1 <- cbind(height1, height2)  # 배열 만들기

height_1


par(mfrow=c(1,2))

barplot(height_1, main="연도별 팀 영업 실적", names.arg=legend_lb1, xlab="연도", ylab="영업 실적(억 원)", col=c("darkblue", "red", "yellow", "green"), 

  legend.text=name, beside=T, ylim=c(0,25), args.legend=list(x='top'))  

barplot(height_1, main="연도별 팀 영업 실적", names.arg=legend_lb1, xlab="연도", ylab="영업 실적(억 원)", col=c("darkblue", "red", "yellow", "green"), 

  legend.text=name, beside=F, args.legend=list(x='topleft') )  




# 히스토그램에서 상대도수를 y축으로 하는 방법

a <- hist(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", breaks=seq(4,6.5,by=0.5),freq=FALSE)  

a

a$density   # 원래 히스토그램의 density값

a$density=a$counts / sum(a$counts)  # 내가 지정한 값을 히스토그램의 density값으로 변경

a$density

a


par(mfrow=c(1,3))

plot(a,freq=T)

plot(a,freq=F) #freq=F이면 각 계급구간(a$breaks)에 대해 확률밀도(a$density)로 크기를 출력함

plot(a,freq=F, ylab="상대도수")



# 줄기-잎 그림


stem(mag)


Scores1 <- c(2,3,16,23,14,12,4,1,2,0,0,0,6,28,31,14,4,8,2,5)

Scores1


Scores=scan()

2 3 16 23 14 12 4 1 2 0 0 0 6 28 31 14 4 8 2 5   #scan()는 숫자로 이루어진 자료를 직접 입력하는데 유용한 함수. 

                                                 # 자료를 입력한 후 더 이상 입력할 자룍 없을 때 Enter키 누름

Scores


stem(Scores)

stem(Scores, scale=2)  #줄기를 10단위가 아닌 크기를 반으로 줄인 5단위로 하고 싶을때 scale 옵션 이용


# 박스플롯

library(graphics)


data(quakes)  # 지진 강도의 데이터 세트 불러오기

quakes



?quakes #해당자료 quakes에 대한 자세한 설명 볼 수 있음


head(quakes)  # 자료의 상위 일부만 나타낼 때 사용. 


str(quakes)   #str()를 이용하여 자료 및 변수들의 유형 확인. num=숫자형(실수), Factor=인자형, chr=문자형, int=숫자형(정수)


mag <- quakes$mag    # 지진의 강도에 대한 벡터 데이터 할당

mag     # 지진의 강도 출력


min(mag)               # method 1. 기술통계량 구하는 방법

max(mag)

median(mag)

quantile(mag, c(0.25,0.5,0.75))  # 25, 50, 75 백분위수

summary(mag)           # method 2. 기술통계량 구하는 방법

var(mag)

sd(mag)

IQR(mag)


sort(mag)  #디폴트는 올림차순

sort(mag, decreasing=T)  #내림차순 할 때


boxplot(mag)



# 색깔 지정

par(mfrow=c(1,2))

boxplot(mag)

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red")



# 수직 vs 수평

par(mfrow=c(1,2))

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red")

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red", horizontal=T)


# box 모양

par(mfrow=c(1,2))

boxplot(mag)

boxplot(mag, notch=T)


# y축 변경

par(mfrow=c(1,2))

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red")

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red", ylim = c(3.5,7))


# 상자그림의 폭을 조정(boxwex)

par(mfrow=c(1,2))

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red", boxwex=0.25)

boxplot(mag, main="지진 발생 강도의 분포", xlab="지진 강도", ylab="발생 건수", col="red", boxwex=0.5)


# 히스토그램과 상자그림 동시에 그리기

library(UsingR)

simple.hist.and.boxplot(mag)


오늘도 글 읽어주셔서 감사합니다.

+ Recent posts