我在三个实验条件(C1,C2,C3)中比较两个变量(V1,V2)。为此,我绘制了与每个变量和条件的估计平均值±可信区间重叠的不同变量分数。
我正在寻找一种方法,在轴标签或图例中包含钻石符号,以将其标识为估计平均值。我是否必须依赖后处理(例如在 Inkscape 中)或者有没有办法在 ggplot2 中对此进行编码?
下面,我为图的估计部分复制了(简化的) R 代码。我会非常感谢任何建议!
Condition <- c("C1", "C2", "C3", "C1", "C2", "C3")
Variable <- c("V1", "V1", "V1", "V2", "V2", "V2")
Estimate <- c(3.05, 3.06, 3.21, 3.15, 3.14, 3.29)
l95CI <- c(2.81, 2.80, 2.97, 2.90, 2.88, 3.05)
u95CI <- c(3.30, 3.30, 3.46, 3.40, 3.39, 3.54)
D <- data.frame(Condition, Variable, Estimate, l95CI, u95CI)
F <- ggplot(D, aes(Condition, Estimate)) +
geom_errorbar(aes(ymin = l95CI, ymax = u95CI), width = .2) +
geom_point(fill = "white", shape = 23, size = 4) +
ylim(1, 5) +
labs(x = "Condition", y = "Score") +
facet_grid(. ~ Variable) +
theme_bw()
编辑:我已经对原始图形进行了后处理,以包含估计平均值和可信区间的附加图例,作为我希望最终图形看起来如何的示例。我仍在寻找一种在 ggplot2 中实现此方法(或对轴标签进行类似更改)的方法。
答案 0 :(得分:1)
非常感谢您的帮助 - 我根本不了解guides
功能。我已经实施了fanli的建议并想出了这个情节:
首先,我将颜色图例添加到相关的geom
元素中。
geom_errorbar(aes(ymin = l95CI, ymax = u95CI, colour = "95% CI"), width = .2) +
geom_point(aes(colour = "Estimated Mean"), fill = "white", shape = 23, size = 4)
其次,我将颜色指定为黑色并重新排序标签。
scale_colour_manual(values = c('Estimated Mean' = 'black', '95% CI' = 'black'), limits = c('Estimated Mean', '95% CI'))
第三,我调整了图例中显示的形状,以反映它们要反映的元素。
guides(colour = guide_legend(override.aes = list(shape = c(23, 124), linetype = c(0, 0), size = c(4, 5))))
最后,我将图例移到了情节的底部。
theme(legend.title = element_blank(),
legend.position = "bottom",
legend.box = "horizontal"),
legend.key = element_rect(colour = NA, fill = "white"))
错误栏在图例中仍未完全复制,但我不认为它会影响图表的清晰度。
答案 1 :(得分:0)
这并不能完全解决您的问题,因为我不认为错误栏是您可以指定的形状。但一般来说,您可以使用guides
函数设置自定义图例。
D <- data.frame(Condition, Variable, Estimate, l95CI, u95CI, type=factor(c("Estimated Mean ", "95% CI "), levels=c("Estimated Mean ", "95% CI ")))
ggplot(D, aes(x=Condition, y=Estimate, group=type, color=type)) +
geom_errorbar(aes(ymin = l95CI, ymax = u95CI), width = .2) +
geom_point(fill = "white", shape = 23, size = 4) +
ylim(1, 5) +
labs(x = "Condition", y = "Score") +
facet_grid(. ~ Variable) +
guides(col=guide_legend(title=NULL, override.aes=list(shape=c(23,124)),
keywidth=1.2)) + theme_bw() + theme(legend.position="bottom", legend.key=
element_rect(size=5,color="white")) +
scale_color_manual(values=c("black", "black"))