我正在尝试重现下面的图表,其中显示了y轴不同部分的平均值和标准差。它们不是将它们绘制在单独的子图中,而是共享x轴。
我看到this suggestion要使用R中的lattice
库,但是我想在侧面使用标签,而不是将每个图表分开 - 就像我提供的示例一样
答案 0 :(得分:1)
在R
中,这是一个ggplot2
版本:
library(ggplot2)
library(reshape2)
# Fake data
set.seed(2)
n = 20
dat = data.frame(mp=rep(seq(0,1,length=n),2),
group=rep(LETTERS[1:2], each=n),
Mean=rep(c(1,1.1),each=n)*seq(0.7,0,length=n),
SD=rep(c(0.1,.12), each=n) + rnorm(2*n,0,0.02))
dat = melt(dat, id.var=c("mp","group"))
dat$variable = factor(dat$variable, levels=c("SD","Mean"))
ggplot(dat, aes(mp, value, colour=group)) +
facet_grid(variable ~ ., scales="free", space="free", switch="y", ) +
geom_vline(xintercept=0.6, colour="grey40", linetype="11") +
geom_line() +
geom_point() +
scale_y_continuous(breaks=function(x) {round(seq(0,max(x),length=5)[-5],1)}) +
expand_limits(y=c(0,0.2)) +
labs(x="Mixing Parameter", y="") +
theme_bw() +
theme(panel.spacing.y=unit(0,"lines"),
strip.placement="outside",
strip.background=element_rect(fill=NA, colour=NA)) +
guides(colour=FALSE)