2017-07-25 3 views
0

ggplotで縦方向のデータセットをプロットしようとしていました。 ここに私の問題を説明するためのデータ例があります。ggplotで縦方向のデータをプロットする際のグルーピングが正しくありません

library(MASS) 
library(ggplot2) 
library(dplyr) 

# create data  
dat.tx.a <- mvrnorm(n=250, mu=c(30, 20, 28), 
         Sigma=matrix(c(25.0, 17.5, 12.3, 
             17.5, 25.0, 17.5, 
             12.3, 17.5, 25.0), nrow=3, byrow=TRUE)) 
    dat.tx.b <- mvrnorm(n=250, mu=c(30, 20, 22), 
         Sigma=matrix(c(25.0, 17.5, 12.3, 
             17.5, 25.0, 17.5, 
             12.3, 17.5, 25.0), nrow=3, byrow=TRUE)) 
    dat <- data.frame(rbind(dat.tx.a, dat.tx.b)) 
    names(dat) = c("measure.1", "measure.2", "measure.3") 
    dat <- data.frame(subject.id=factor(1:500), tx=rep(c("A", "B"), each=250), dat) 
    rm(dat.tx.a, dat.tx.b) 
    dat <- reshape(dat, varying=c("measure.1", "measure.2", "measure.3"), 
        idvar="subject.id", direction="long") 
#ggplot 
dat %>% 
     group_by(tx,time) %>% 
     summarize(mean=mean(measure), sd=sd(measure)) %>% 
     ggplot(aes(x=time, y=mean, color=tx))+ 
     geom_point()+ 
     geom_line(aes(group=1))+ 
     labs(x='Time', y='Cytokine Level') 

ここに私が得たプロットがあります。ラインは完全にネジ止めされています。プロットに何が間違っていた?ありがとうございました。

enter image description here

+0

'グループは= '1つのグループで一緒にすべてを接続するためのggplotに指示します。消して。 – Gregor

答えて

0

あなたはgroup=txgroup=1を交換する必要があります。

dat %>% 
    group_by(tx,time) %>% 
    summarize(mean=mean(measure), sd=sd(measure)) %>% 
    ggplot(aes(x=time, y=mean, color=tx))+ 
    geom_point()+ 
    geom_line(aes(group=tx))+ 
    labs(x='Time', y='Cytokine Level') 

enter image description here

関連する問題