R中具有标准偏差的增长曲线

问题描述 投票:0回答:1

我正在尝试绘制数据(每个菌株的重复结果),并且我只希望每个菌株有一个折线图,这意味着每个菌株的平均重复结果带有沿误差线的点(重复数据之间的误差) 。

lines unfortunately separate for each strain replicate

如果单击上面的图像,则显示了我到目前为止的绘图,该绘图将WT和WT.1显示为单独的行,并显示所有其他重复项。但是,它们是每种菌株(WT,DrsbR,DsigB)的复制品,我希望它们显示为每种菌株的平均结果的一行。我使用的是ggplot打包数据,并且将数据与reshape打包数据融合在一起,但是无法弄清楚如何使我的重复数据与误差线(重复数据之间的均值的标准差)一起显示为一行。黑白图像是我在图形分开的行中寻找的东西,复制数据的点绘制为平均值。

This image shows similiar plot i am looking for, each line representing 2 or 3 replicates with points along the line with errors of data tested at each time point

library(reshape2)
melted<-melt(abs2)
print(abs2)
melted<-melt(abs2,id=1,measured=c("WT","WT.1","DsigB","DsigB.1","DrsbR","DrsbR.1"))
View(melted)
colnames(melted)<-c("Time","Strain","Values")
##line graph for melted data
melted$Time<-as.factor(melted$Time)
abs2line=ggplot(melted,aes(Time,Values))+geom_line(aes(colour=Strain,group=Strain))
abs2line+
  stat_summary(fun=mean,
               geom="point",
               aes(group=Time))+
  stat_summary(fun.data=mean_cl_boot,
               geom="errorbar",
               width=.2)+
  xlab("Time")+
  ylab("OD600")+
  theme_classic()+
  labs(title="Growth Curve of Mutant Strains")
summary(melted)
print(melted)
ggplot2 plot line anova errorbar
1个回答
0
投票

一种方法是使用separate中的separate()函数将融化的数据框和tidyr从“变量”列中移到“种类”和“应变”中。我没有您的数据集-如果您能够通过dput(your.data.frame)共享您的数据集以解决以后的问题,我们将不胜感激-因此,我制作了一个与您的数据集相似的虚拟数据集。在这里,每个物种都有两个“物种”(红色和蓝色)和两个“菌株”。

df <- data.frame(
    time = seq(0, 40, by=10),
    blue = c(0:4),
    blue.1 = c(0, 1.1, 1.9, 3.1, 4.1),
    red = seq(0, 8, by=2),
    red.1 = c(0, 2.1, 4.2, 5.5, 8.2)
)

df.melt <- melt(df,
    id.vars = 'time',
    measure.vars = c('blue', 'blue.1', 'red', 'red.1'))

然后我们可以使用tidyr::separate()将所得的“变量”列分为“种类”列和“应变”列。幸运的是,您的数据包含一个“。”可以用作分隔的方便字符:

df.melt.mod <- df.melt %>%
    separate(col=variable, into=c('species', 'strain'), sep='\\.')

注意:上面的代码将向您发出警告,指出“蓝色”和“红色”没有“。”。字符,从而为“应变”列提供NA。我们不在这里,因为这里没有使用该列。同样,在您自己的数据集中,您不必太在意。

然后,您实际上可以只对所有几何图形使用stat_summary() ...根据您的视觉和主题偏好进行修改。请注意,顺序对于分层很重要,因此我先绘制geom_line,然后绘制geom_point,然后绘制geom_errorbar。还请注意,您可以在基本group=species调用中分配ggplot()美观度,并且除非覆盖,否则映射将应用于所有geoms

ggplot(df.melt.mod, aes(x=time, y=value, group=species)) +
    stat_summary(
        fun = mean,
        geom='line',
        aes(color=species)) +
    stat_summary(
        fun=mean,
        geom='point') +
    stat_summary(
        fun.data=mean_cl_boot,
        geom='errorbar',
        width=0.5) +
    theme_bw()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.