티스토리 뷰

반응형

파이, 3D파이 그래프 그리기


파이 그래프


Pie : 파이 차트 그리기 


pie(x,    # 데이터

     labels = names(x),  # 각 파이의 이름

     angle = 45,   # 파이를 구성하는 각도

     density = NULL,   파이를 구성하는 수

     col = NULL,    #  파이 색상

     radius = 0.8,   # 원형의 크기 

     clockwise = FALSE,     # 시계방향(TRUE), 반 시계방향(FALSE)

     init.angle = if(clockwise) 90 else 0,   # 파이의 시작 각도

     border = NULL,  # 파이의 테두리 색상

     lty = NULL, main = NULL, ...)


# 45도 각도부터 시계 반대 방향으로 그래프가 시작됩니다.


> v1 <- c(1,2,3,4)

> pct <- round(v1/sum(v1) * 100,1)

> lab1 <- c('Day 1','Day 2','Day 3','Day 4')

> lab2 <- paste(lab1,"\n",pct," %")

> pie(v1,radius=1, init.angle=90,col=rainbow(length(v1)),label=lab2)




3D파이 그래프



plotrix::Pie3D : 파이 차트 그리기


pie3D(x,

        radius=1,   # 원형의 크기 

        height=0.1,  # 원형의 높이

        col=NULL,   #  파이 색상

        border=par("fg")   # 파이 테두리 색상

        labelcol=par("fg")   # 라벨 색상

        labelcex = 1  # 라벨 글자 크기 

        theta=pi/6   # 그래프 각도

        shade=0.8   # 그림자 강도

        explode=0)   # 파이들의 간격


Q1.

# card_history.csv 파일을 대상으로 각 항목별 지출비율을 3D 파이 차트로 출력

# 단, 각 파이의 이름은 아래와 같은 형식으로 지정 (지줄항목,  40%)

> card <- read.csv('card_history.csv', stringsAsFactors = F)

> card

   NUM 식료품    의복 외식비    책값 온라인소액결제 의료비

1    1 19,400 143,000  8,600  29,000          5,600 19,200

2    2 22,200 120,400  7,000  26,000          3,300 13,000

3    3 24,600  88,500  7,500  22,000          7,500 16,600

...


# 천 단위 구분기호를 제거하고 숫자형으로 변환

> library(stringr)

> f1 <- function(x) {

    as.numeric(str_replace_all(x,',',''))

  }

> card <- as.data.frame(sapply(card,f1))


# 각 항목 별 지출비용 합계

> vsum <- apply(card[,-1], 2, sum)     

> vsum

        식료품           의복         외식비           책값 온라인소액결제         의료비 

        795500        3947700         281400         945000         186300         633600


# 각 항목 별 지출비율

> rate <- round(vsum / sum(vsum) * 100, 1)

> rate

        식료품           의복         외식비           책값 온라인소액결제         의료비 

          11.7           58.1            4.1           13.9            2.7            9.3 


# 라벨 설정

> label <- paste(names(vsum), '\n', rate, '%', sep = '')


# 3Dpie 그리기

> install.packages("plotrix")

> library(plotrix)

> pie3D(rate, main = '항목별 지출비율', col = rainbow(length(rate)),

        labelcex = 1, radius = 0.8, labels = label, explode = 0.05)

# 범례를 추가할 경우

> legend(0.3, 1, names(vsum), cex = 0.7, fill = rainbow(length(rate)))






참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday