티스토리 뷰

바이오 인포매틱스 /R

R로 그래프 그리기

메타지노믹스 2017. 5. 30. 23:21

R 이 통계처리에 강점을 가지고 있다고 하지만 또한가지의 강점은 Visualization이다. 그래프를 그릴때 필요한 사소한 수정과 반복을 생각해보면 R을 통해 그래프를 그리는 것이 얼마나 강력한지 느끼게 된다. 처음에는 조금 어렵게 느껴 질 수 있지만 익숙해 지면 편하다


R을 설치하고 실행하는 방법은 여기를 참고.


먼저 작업하는 폴더를 지정해 준다.

setwd("~/Desktop")


데이터를 읽는다. 데이터는 첨부파일에 있음

dat <- read.csv("plot_sample.csv")


reshape을 이용해 데이터 테이블을 적절하게 변형시켜준다.

library(reshape)

melted <- melt(dat, id = c("treatment", "time"))


ggplot을 이용해 그래프를 그린다.


첫번째 방법으로 박스플랏을 그리는 방법 

library(ggplot2)

ggplot(melted, aes(x=as.factor(time), y=value))+

       geom_boxplot(aes(fill=treatment),position= position_dodge(0.9))+

       labs(x="Time(hr)", y="Concentration (mg/ml)")


그러면 아래와 같은 그래프가 그려진다


두번째 바 플랏을 그리는 방법. 

바플랏은 평균과 standard deviation을 자동으로 계산해 주지 않으므로 이를 계산해 주는 함수를 읽어준다.

data_summary <- function(data, varname, groupnames){

  require(plyr)

  summary_func <- function(x, col){

    c(mean = mean(x[[col]], na.rm=TRUE),

      sd = sd(x[[col]], na.rm=TRUE))

  }

  data_sum<-ddply(data, groupnames, .fun=summary_func,

                  varname)

  data_sum <- rename(data_sum, c("mean" = varname))

 return(data_sum)

}



그리고 함수를 실행해서 평균와 starndard deviation을 계산

df <- data_summary(melted, varname="value"

                 groupnames=c("treatment", "time"))


마지막으로 바플랏을 그린다.

p <- ggplot(df, aes(x=time, y=value, fill=treatment)) + 

   geom_bar(stat="identity", position=position_dodge()) +

  geom_errorbar(aes(ymin=value-sd, ymax=value+sd), width=.2,

                 position=position_dodge(.9))

plot(p)


이렇게 하면 아래와 같은 그래프가 그려진다



전체 코드는 첨부파일에 있다.

plot_sample.csv

plot_sample.R






'바이오 인포매틱스 > R' 카테고리의 다른 글

R 설치하고 실행하는 방법  (1) 2017.02.08
Phyloseq에서 QIIME 결과 불러오기  (0) 2017.01.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함