행위

R 레이더 차트 비교

DB CAFE

thumb_up 추천메뉴 바로가기


1 레이더 차트 비교 예제[편집]

1.1 코스피 주가 비교[편집]

mt<-read.csv("D:/dev/R/kospi_diff.csv", header = T)

# 1번째는 코스피,주식회사,.....
price_low <- subset(mt, 구분=kospi)

# 가격이 100만원에서 200만원 사이
#price_mid <- subset(mt, 가격_만원 >= 100 & 가격_만원 <200) 
# 가격이 200만원 이상
#price_high <- subset(mt, 가격_만원 >= 200)

library(fmsb) #여기에 radarchart함수가 있다 
library(RColorBrewer)


to_radar_data <- function(dataframe) { 
    as.data.frame(rbind( max(dataframe[, -1]), min(dataframe[ , -1]), dataframe[ , -1] ) ) }


to_radar_png <- function(dataframe, file_label = 'radarchart_') { 
    
    data_new <- to_radar_data(dataframe) #레이더차트를 그리기 위한 데이터셋을 함수 안에서 정의해줌 
    mypalette <- brewer.pal(9,"Set1") #레이더차트 컬러는 그냥 이걸로 고정.... 필요하면 바꾸면 됨 
    
    for (i in 3 : nrow(data_new)) {
        
        png(filename = paste0(file_label, i-2, ".png"), width = 600, height = 500)
        
        onebyone =  data_new[c(1,2,i), ] #한 행씩 추출
        
        radarchart(onebyone, 
                   axistype = 1,
                   seg = 4, pty = 16, 
                   pcol = mypalette[i], plwd = 2, 
                   cglcol = "grey", cglty = 1, axislabcol = "grey", 
                   caxislabels = seq(from = min(data_new), to = max(data_new), length = 5), 
                   cglwd=0.5, vlcex = 1.6, palcex = 0.6, calcex = 0.9,
                   vlabels = colnames(dataframe)[c(2:length(colnames(dataframe)))],
                   title = dataframe[i-2,1])
        
        dev.off()
    }
    
    print("done!")
}


to_radar_png(price_low, file_label = 'kospi_')