我想将置信区间的颜色设置为与它们所属的错误条相同的颜色。
rat3 <- rep(c(1:6,6:2,3:1,2:4), 20)
logRT <- rep(seq(from=6, to=7.6, by=0.1), 20)
condition <- rep(c("c","i"),170)
condition <- as.factor(condition) #turns to 1-2, is c-i in my data
meto <- cbind(rat3, logRT, condition)
meto <- as.data.frame(meto) #this produces a df similar to mine
这是情节的代码:
barmeto <- ggplot(meto, aes(rat3, logRT, colour=condition)) #assign
barmeto + geom_smooth(method="lm") +
stat_summary(fun.data=mean_cl_boot, geom="errorbar", lwd=1.5) +
scale_colour_grey(start=0.15, end=0.5)
它生成一个带有2个相同浅灰色漏斗的图像。对不起,除了像这样,我既不能上传也不能嵌入或发布图片链接: https://stats.stackexchange.com/questions/268740/ggplot2-change-colour-of-ci
我需要两个漏斗才能有不同的颜色。非常短的应该是黑色的,就像它所属的误差条(短漏斗黑色),长的一个深灰色,就像它的误差条。
感谢您的帮助,谢谢!到目前为止,我在这里找到的食谱都没有给我工作。
答案 0 :(得分:0)
要重现所链接的图表,您应将aes
填充和颜色设置为因子条件,然后添加scale_fill_grey
:
# factor condition variable in meto
meto$condition <- factor(meto$condition)
# plot with fill and colour aes
barmeto <- ggplot(meto, aes(rat3, logRT, colour=condition, fill=condition))
barmeto + geom_smooth(method="lm") +
stat_summary(fun.data=mean_cl_boot, geom="errorbar", lwd=1.5) +
scale_colour_grey(start=0.15, end=0.5) +
scale_fill_grey(start=0.15, end=0.5)
由于回归线在此示例中重叠,您可能还希望为每个条件设置线型或线宽。您的灰度值也非常接近彼此和背景,尝试更多不同的值和/或设置为theme_bw()。
例如,下面的代码大小为aes和theme_bw()会产生下面的图:
barmeto <- ggplot(meto, aes(rat3, logRT, colour=condition, fill=condition, size=condition))
barmeto + geom_smooth(method="lm") +
stat_summary(fun.data=mean_cl_boot, geom="errorbar") +
scale_colour_grey(start=0.1, end=0.5) +
scale_fill_grey(start=0.1, end=0.5) +
scale_size_manual(values=c(2,1)) +
theme_bw()
编辑回答评论问题,要编辑线型,您可以在aes上设置,线型选择可以在这里看到:http://www.cookbook-r.com/Graphs/Shapes_and_line_types/
barmeto <- ggplot(meto, aes(rat3, logRT, colour=condition, fill=condition, size=condition, linetype=condition))
barmeto + geom_smooth(method="lm") +
stat_summary(fun.data=mean_cl_boot, geom="errorbar") +
scale_colour_grey(start=0.1, end=0.5) +
scale_fill_grey(start=0.1, end=0.5) +
scale_size_manual(values=c(2,1)) +
scale_linetype_manual(values=c("solid", "twodash")) +
theme_bw()
你仍然有回归线重叠的问题,在这种情况下你可能只是喜欢以条件换面:
barmeto <- ggplot(meto, aes(rat3, logRT, colour=condition, fill=condition))
barmeto + geom_smooth(method="lm") +
stat_summary(fun.data=mean_cl_boot, geom="errorbar", lwd=1.5) +
scale_colour_grey(start=0.15, end=0.5) +
scale_fill_grey(start=0.15, end=0.5) +
facet_wrap(~condition) + theme_bw()