JJUNNAK's

[ R ] 막대 그래프 barplot() , par()함수 본문

Language/R

[ R ] 막대 그래프 barplot() , par()함수

최낙준 2023. 1. 17. 03:09

막대 그래프

막대그래프는 그룹이나 범주가 정해져 있는 데이터를 시각화하는데 사용된다.

막대그래프를 작성하기 위해서는 그룹별로 데이터를 집계해야 한다.


그래프 작성하기

  1. 도수분포표 만들기
blood <- c('A','A','B','A','O','O','AB','A','B','O','AB')
ds <- table(blood)

혈액형별 인원수에 대한 도수분포를 계산하고 도수분포표를 만들었다.

2. 그래프 그리기

barplot(ds, # 대상 데이터 
main='혈액형별 인원수',
# 제목 col='red', 
# 막대 색상 지정 
xlab = '혈액형', # x축 이름 
ylab = '인원수', # y축 이름 
)

또한 horiz 매개변수로 그래프의 방향을 전환할 수도 있다.

3. 방향전환

barplot(ds,                       # 대상 데이터
        main='혈액형별 인원수',    #  제목
        col='red',                # 막대 색상 지정
        xlab = '혈액형',          # x축 이름
        ylab = '인원수',          # y축 이름
        horiz=TRUE                # FALSE는 수직, TRUE는 수평
        )

막대의 색상도 모두 다르게 지정할수 있다.

4. 색상 지정

barplot(ds,                        # 대상 데이터
        main='혈액형별 인원수',    #  제목
        col=c('red','blue','green','yellow'),  # 막대 색상 지정
        xlab = '혈액형',           # x축 이름
        ylab = '인원수',           # y축 이름
        )

 


중첩 막대 그래프

그룹안에 또다른 그룹이 존재하는 데이터의 경우에는 그래프를 중첩하여 그리기도 한다.

[ 대상 데이터 ]

age.A <- c(13709, 10974, 7979, 5000, 4250)
age.B <- c(17540, 29701, 36209, 33947, 24487)
age.C <- c(991, 2195, 5366, 12980, 19007)

ds <- rbind(age.A, age.B, age.C)
colnames(ds) <- c('1970','1990','2010','2030','2050')  

> [ 결과 ]
       1970  1990  2010  2030  2050
age.A 13709 10974  7979  5000  4250
age.B 17540 29701 36209 33947 24487
age.C   991  2195  5366 12980 19007

 

위 데이터는 연도를 기준으로 그룹을 나누어

연도안에서 연령대별로 그룹을 나눈 데이터이다.

  1. 그래프작성
barplot(ds, main='인구 추정')

2. 연령별로 색상 다르게 지정

barplot(ds, main='인구 추정', col = c('green','red','blue') )

beside=TRUE 매개변수를 추가하면 막대를 각각 따로 그릴수도 있다.

3. 범례추가 / beside=TRUE

막대그래프를 보다 직관적으로 이해할 수 있도록 범례를 추가할 수도 있다.

par(mfrow=c(1, 1), mar=c(5, 5, 5, 7)) # 그래프 영역 수정

barplot(ds, main='인구 추정', 
        col=c('green','blue','yellow'),
        beside=TRUE,  # 막대를 각각 따로 표시
        # 범례 추가
        legend.text=c('0~14세','15~64세','65세 이상'), 
        args.legend = list(x='topright', bty='n', inset=c(-0.38,0))
        )

 


par( ) 함수

par() 함수는 그래프 표시창을 설정할 때 사용하는 함수이다.

par(mfrow=c(2,2), # 화면을 2X2로 분할
mar=c(3,3,4,2)    # 그래프 출력영역 밖의 여유공간 설정
)

par() 함수는 R이 실행되는 동안 변경된 설정이 계속 유지된다.

때문에 설정을 변경하였다면 그래프 작업을 마무리할 때 원래의 설정값으로 되돌리는것이 좋다.

par(mfrow=c(1,1), mar=c(5.1,4.1,4.1,2.1) # 기본값.

 

Comments