我有以下数据,在这里我想绘制两个时间点(t1,t2)上物种1和2的“值”。我想创建一个绘图,使用geom_points(不同的颜色)可以看到每个物种的原始值。另外,我想使用较大的相同颜色来显示均值。 对于给定的物种,我想将t1和t2的均值(也称为反应范数)联系起来。因此,在此示例中,种类1的线应向上倾斜,种类2的线应保持不变。
我尝试了基本的ggplot2,但是我不知道如何添加行并以更大的尺寸显示均值。同样,由于某种原因,“填充”不会产生不同的颜色。
time <- c("t1","t1","t1","t1","t1","t1","t2","t2","t2","t2","t2","t2")
species <- c(1,1,1,2,2,2,1,1,1,2,2,2)
value <- c(1,2,3,11,12,13,4,5,6,11,12,13)
df <- data.frame(time, species,value)
df$time <- as.factor(df$time)
df$species <- as.factor(df$species)
ggplot(df,aes(x=time, y=value, fill = species)) +
theme_bw() +
geom_point() +
stat_summary(fun.y=mean, position = "dodge") +
stat_summary(geom="errorbar", fun.data= mean_cl_boot, width = 0.1, size = 0.2, col = "grey57") +
ylab("Fitness")
答案 0 :(得分:2)
如果我按照您的要求进行操作,则应该进行一些适当的调整。基本技巧是在每一层中设置aes
。我在每个图层中分别设置了color
/ group
,因为否则我将很难获得显示时间在之间而不是 in 时间的路径。
因此,第一个摘要是组之间的路径。第二个是错误栏;正如我上面提到的,它有颜色,而不是填充。您先前已将颜色设置为aes
之外,无论您是否将颜色映射到变量,都将误差线设置为灰色。平均点的大小(4)比常规点(2)大。
library(ggplot2)
ggplot(df, aes(x = time, y = value)) +
stat_summary(aes(group = species), fun.y = mean, geom = "path") +
stat_summary(aes(color = species), fun.data = mean_cl_boot, geom = "errorbar", width = 0.1) +
stat_summary(aes(color = species), fun.y = mean, geom = "point", size = 4) +
geom_point(aes(color = species), size = 2)
由reprex package(v0.2.1)于2019-02-21创建
答案 1 :(得分:1)
类似
ggplot(df,aes(x=time, y=value, color = species)) + # Change fill to color
theme_bw() +
geom_point() +
stat_summary(fun.y=mean, position = "dodge") +
stat_summary(
geom="errorbar",
fun.data= mean_cl_boot,
width = 0.1, size = 0.2, col = "grey57") +
# Lines by species using grouping
stat_summary(aes(group = species), geom = "line", fun.y = mean) +
ylab("Fitness")
如果您需要两个错误栏,可以将行摘要的group
添加到ggplot外观中。