반응형

데이터는 다음과 같다. CSV로 저장하였음

데이터1 ) ID와 데이터가 있는 data.CSV
데이터2 ) ID와 NAME이 있는 model.CSV 


 

1. 파일 읽어들이기

###### 첫 번째 파일 읽기 ######
setwd("C:/Users/USER/Desktop")
tsv <-fread("data.csv")

 

 

###### 두 번째 파일 읽기 ######
setwd("C:/Users/USER/Desktop")
NAME <-fread("model.csv")

 

 

 

2. 두 데이터 합치기 merge

MergeTsv <- merge(tsv,NAME,by="ID",all=FALSE)

 

all 옵션 : 

all=TRUE 일때는 합집합(좌)

all=FALSE 일때는 교집합(우)

 

 

3. 데이터 타입 변환

MergeTsv$DATA <- as.numeric(MergeTsv$DATA)

############### POSIX 타입으로 변환하는 경우####################
MergeTsv$REG_DATE <- as.POSIXct(MergeTsv$REG_DATE,format="%H:%M:%S")

############### %H:%M 처럼 변환 형태를 지정하는 경우 format 이용####################
############### format을 이용하면 CHAR 타입으로 변환이 된다....####################
MergeTsv$REG_DATE<-format(as.POSIXct(MergeTsv$REG_DATE,format = "%H:%M:%S"),"%H:%M")

 

4. ggplot 이용하여 꺾은선 그래프 그리기

//x=축 데이터, y=y축 데이터, colour, group = 구분 기준
ggplot(MergeTsv,aes(x=REG_DATE,y=DATA, colour=DAY,group=DAY))+
//facet_wrap=plot이 만들어지는 단위 기준
 geom_line()+facet_wrap(~NAME,ncol = 1, scales="free")+
 coord_cartesian(ylim=c(1,150))+
 scale_x_discrete(breaks= c("03:00","06:00","09:00","12:00","15:00","18:00","21:00"))

- group :  한 장비의 yesterday, today 별로 그래프를 그리고 싶어서 group을 주었음

- facet_wrap : 장비 NAME 별로 그래프를 따로 그리기 위해 facet_wrap 사용

- ncol : 열의 갯수 

- scales :  x 축 라벨이 각  행마다 다 들어가려면 free

- coord_cartesian : y축 범위 설정

- scale_x_discrete : x축 라벨 표시 간격 설정

 


ncol = 1 옵션 넣은 것 

ncol = 1 옵션 안 넣은 것 


scales = "free" 넣은것 

scales = "free" 안 넣은것 


scale_x_discrete 사용 안 한 것

미친자처럼 x축 라벨이 다 달리는 바람에 겹쳐서 선이 되어버림 ㄹㅇ 멸망

scale_x_discrete 사용 한 것

으음~깰끔~

 


5. 파일로 저장하기

###### pdf 열기 ######
pdf("example.pdf")
###### 그래프 그리기 ######
ggplot(MergeTsv,aes(x=REG_DATE,y=DATA, colour=DAY,group=DAY))+geom_line()+facet_wrap(~NAME,ncol = 1)
###### 닫기 ######
dev.off()

이렇게 하면 pdf로 저장됨

혹은

ggsave(file=pdfname,plot=all_plot,height=5, units="in", limitsize = FALSE)

 

 

 


그래프 그리기 연습하면서 참고한 블로그 

*  merge 내용 참고

 

R - 기본함수 - rbind / cbind / merge

R에서 데이터를 결합하는 함수로는 rbind, cbind, merge 세가지가 있습니다. 1. rbind데이터프레인 df1과 ...

blog.naver.com

 

* facet_wrap과 ncol 참고

 

R ggplot2 집단간 비교를 위한 면 분할(facet, Trellis) : facet_grid(), facet_wrap()

그룹(집단, 요인) 간의 데이터 분포 형태, 변화 추이 등을 비교 분석하기에 유용한 방법으로 비교하려는 축을 기준으로 면을 분할하여 그래프를 그룹 간 비교하는 방법이 있습니다. Lattice 패키지

rfriend.tistory.com

* x축 표시 참고

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

* 아래 오류 참고

geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?

 

ggplot2 tips – 숨은원리 데이터사이언스: R로 하는 데이터 사이언스

 

ds.sumeun.org

 

반응형

+ Recent posts