尽管我躲避了位置,但我的 geom_bar 图的错误栏还是乱七八糟的
My errorbars for geombar plot are messed up despite my position dodge
尽管位置闪避,但我的 barplot 中的错误栏还是乱七八糟的,我对一个不那么复杂的情节使用了同样的方法并且它起作用了。欢迎提出建议
tgc <- structure(list(Group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("Visible", "Remembered"), class = "factor"),
Condition = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L,
2L, 3L, 3L), .Label = c("CEN", "IPS", "CTR"), class = "factor"),
test = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L, 2L), .Label = c("Pretest", "Posttest"), class = "factor"),
N = c(12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12), EE = c(7.33336873483333,
6.80361546108333, 7.09299323975, 7.85694358425, 7.03401583625,
6.98843623408333, 6.64690423166667, 6.76286593966667, 6.53229116175,
6.597801229, 5.87755052541667, 6.29406939166667), sd = c(1.10209636894719,
0.640166385925573, 0.829194321849813, 0.815786383997366,
1.13990647741682, 0.831699837406531, 0.894188346279884, 0.836594325568601,
0.762116322320573, 0.810426854086389, 0.986911196860133,
0.835898962602035), se = c(0.318147817642284, 0.18480011762014,
0.239367782465249, 0.235497244201055, 0.329062655793799,
0.240091062505814, 0.258129941215459, 0.241503979534773,
0.220004031922795, 0.233950081182639, 0.284896722586727,
0.241303245536807), ci = c(0.700238625346207, 0.406742316465117,
0.526844937010058, 0.518325939729, 0.724262022142493, 0.528436865645932,
0.568140169990552, 0.531546675059109, 0.484225609422399,
0.514920656885223, 0.62705345857213, 0.531104862508461)), row.names = c(NA,
-12L), class = "data.frame")
tgc <- summarySE(data10, measurevar="EE", groupvars=c("Group", "Condition", "test"))
ggplot(tgc, aes(x = Condition, y = EE), fill = test) +
geom_errorbar(aes(ymin=EE-se, ymax=EE+se), position = position_dodge(0.5), width=.1) +
geom_bar(aes(fill = test), stat = "identity", width = 0.5, color = "black", position='dodge') + ylim(0,9) + theme_bw() +
geom_signif(data = data.frame(Condition = c("CEN","IPS", "CTL")),
aes(y_position=c(8.5, 8.5, 8.5, 8.5, 8.5, 8.5), xmin=c(0.8, 1.8, 2.8, 0.8, 1.8, 2.8), xmax=c(1.2, 2.2, 3.2, 1.2, 2.2,3.2),
annotations=c("**", "*", "NS", "*", "**", "NS")), tip_length=0, manual = T) +
scale_fill_manual(values = c("grey80", "grey20")) +
facet_grid(~ Group, scales = "free")
您需要让 ggplot
知道要将哪个变量用作应用闪避的分组变量(在您的情况下,这将是 test
)。此外,您应该在实际条形之后绘制误差条,以便下部保持可见:
ggplot(tgc, aes(x = Condition, y = EE, fill = test)) +
geom_bar(stat = "identity", width = 0.5, color = "black", position='dodge') +
geom_errorbar(aes(ymin = EE - se, ymax = EE + se, group = test),
position = position_dodge(width = 0.5), width = 0.25) +
geom_signif(data = data.frame(Condition = c("CEN","IPS", "CTL"),
ypos = c(8.5, 8.5, 8.5, 8.5, 8.5, 8.5),
xmin = c(0.8, 1.8, 2.8, 0.8, 1.8, 2.8),
xmax = c(1.2, 2.2, 3.2, 1.2, 2.2,3.2),
annot = c("**", "*", "NS", "*", "**", "NS")),
mapping = aes(y_position = ypos,
xmin = xmin,
xmax = xmax,
annotations = annot),
tip_length = 0, manual = TRUE, inherit.aes = FALSE)
scale_fill_manual(values = c("grey80", "grey20")) +
facet_grid(~ Group, scales = "free") +
ylim(0, 9) +
theme_bw()
尽管位置闪避,但我的 barplot 中的错误栏还是乱七八糟的,我对一个不那么复杂的情节使用了同样的方法并且它起作用了。欢迎提出建议
tgc <- structure(list(Group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("Visible", "Remembered"), class = "factor"),
Condition = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L,
2L, 3L, 3L), .Label = c("CEN", "IPS", "CTR"), class = "factor"),
test = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L, 2L), .Label = c("Pretest", "Posttest"), class = "factor"),
N = c(12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12), EE = c(7.33336873483333,
6.80361546108333, 7.09299323975, 7.85694358425, 7.03401583625,
6.98843623408333, 6.64690423166667, 6.76286593966667, 6.53229116175,
6.597801229, 5.87755052541667, 6.29406939166667), sd = c(1.10209636894719,
0.640166385925573, 0.829194321849813, 0.815786383997366,
1.13990647741682, 0.831699837406531, 0.894188346279884, 0.836594325568601,
0.762116322320573, 0.810426854086389, 0.986911196860133,
0.835898962602035), se = c(0.318147817642284, 0.18480011762014,
0.239367782465249, 0.235497244201055, 0.329062655793799,
0.240091062505814, 0.258129941215459, 0.241503979534773,
0.220004031922795, 0.233950081182639, 0.284896722586727,
0.241303245536807), ci = c(0.700238625346207, 0.406742316465117,
0.526844937010058, 0.518325939729, 0.724262022142493, 0.528436865645932,
0.568140169990552, 0.531546675059109, 0.484225609422399,
0.514920656885223, 0.62705345857213, 0.531104862508461)), row.names = c(NA,
-12L), class = "data.frame")
tgc <- summarySE(data10, measurevar="EE", groupvars=c("Group", "Condition", "test"))
ggplot(tgc, aes(x = Condition, y = EE), fill = test) +
geom_errorbar(aes(ymin=EE-se, ymax=EE+se), position = position_dodge(0.5), width=.1) +
geom_bar(aes(fill = test), stat = "identity", width = 0.5, color = "black", position='dodge') + ylim(0,9) + theme_bw() +
geom_signif(data = data.frame(Condition = c("CEN","IPS", "CTL")),
aes(y_position=c(8.5, 8.5, 8.5, 8.5, 8.5, 8.5), xmin=c(0.8, 1.8, 2.8, 0.8, 1.8, 2.8), xmax=c(1.2, 2.2, 3.2, 1.2, 2.2,3.2),
annotations=c("**", "*", "NS", "*", "**", "NS")), tip_length=0, manual = T) +
scale_fill_manual(values = c("grey80", "grey20")) +
facet_grid(~ Group, scales = "free")
您需要让 ggplot
知道要将哪个变量用作应用闪避的分组变量(在您的情况下,这将是 test
)。此外,您应该在实际条形之后绘制误差条,以便下部保持可见:
ggplot(tgc, aes(x = Condition, y = EE, fill = test)) +
geom_bar(stat = "identity", width = 0.5, color = "black", position='dodge') +
geom_errorbar(aes(ymin = EE - se, ymax = EE + se, group = test),
position = position_dodge(width = 0.5), width = 0.25) +
geom_signif(data = data.frame(Condition = c("CEN","IPS", "CTL"),
ypos = c(8.5, 8.5, 8.5, 8.5, 8.5, 8.5),
xmin = c(0.8, 1.8, 2.8, 0.8, 1.8, 2.8),
xmax = c(1.2, 2.2, 3.2, 1.2, 2.2,3.2),
annot = c("**", "*", "NS", "*", "**", "NS")),
mapping = aes(y_position = ypos,
xmin = xmin,
xmax = xmax,
annotations = annot),
tip_length = 0, manual = TRUE, inherit.aes = FALSE)
scale_fill_manual(values = c("grey80", "grey20")) +
facet_grid(~ Group, scales = "free") +
ylim(0, 9) +
theme_bw()