facet_wrap(scales="free_y") 没有产生预期的结果
facet_wrap(scales="free_y") not producing desired result
我正在尝试使用带有 9 个子图的 ggplot2 创建一个图。我的目标是让垂直轴在 9 个子图中的每一个的单独级别上进行缩放。为此,我正在尝试语法 facet_wrap(scales = "free_y")。但是,它似乎对我不起作用,相反,垂直轴在所有 9 个子图中似乎都是相同的。下面是一个 MWE:
x <- rep(c(rep("F",4),rep("M",4)),9)
y <- abs(c(rnorm(36,0,20),rnorm(36,0,5)))
z <- rep(1:9,each=8)
meanG1 <- c()
meanG2 <- c()
for (i in c(1,9,17,25,33,41,49,57,65)){
meanG1 <- c(meanG1, rep(mean(y[i:(i+3)]),8))
meanG2 <- c(meanG2, rep(mean(y[5:(i+3)]),8))
}
dat <- data.frame(x=x,y=y,z=z,meanG1=meanG1,meanG2=meanG2)
ggplot(dat, aes(x, y)) +
geom_point(aes(colour = factor(x)), shape = 20, size=5, alpha = 0.5) +
scale_shape(solid = FALSE) +
ggtitle(paste("My Plot")) +
ylab("Count") +
scale_y_continuous(limits=c(0, max(dat$y))) +
theme(axis.title.x = element_blank(),
legend.position="bottom",
axis.text=element_text(size=12),
axis.title=element_text(size=12),
legend.title=element_text(size=12),
legend.text=element_text(size=12),
plot.title=element_text(hjust=0.5)) +
labs(colour = "Group", size=12) +
geom_segment(aes(x = 1, y = meanG1, xend = 2, yend = meanG2), colour="gray25", size = 0.1) +
facet_wrap(~ z, ncol = 3, scales = "free_y")
如果有人对可能导致此问题的原因提出建议 and/or 如何解决此问题,我会洗耳恭听!谢谢。
你必须从你的 ggplot 代码中删除它
scale_y_continuous(limits=c(0, max(dat$y)))
因为它是 'fixing' 所有方面的 y 轴范围
我正在尝试使用带有 9 个子图的 ggplot2 创建一个图。我的目标是让垂直轴在 9 个子图中的每一个的单独级别上进行缩放。为此,我正在尝试语法 facet_wrap(scales = "free_y")。但是,它似乎对我不起作用,相反,垂直轴在所有 9 个子图中似乎都是相同的。下面是一个 MWE:
x <- rep(c(rep("F",4),rep("M",4)),9)
y <- abs(c(rnorm(36,0,20),rnorm(36,0,5)))
z <- rep(1:9,each=8)
meanG1 <- c()
meanG2 <- c()
for (i in c(1,9,17,25,33,41,49,57,65)){
meanG1 <- c(meanG1, rep(mean(y[i:(i+3)]),8))
meanG2 <- c(meanG2, rep(mean(y[5:(i+3)]),8))
}
dat <- data.frame(x=x,y=y,z=z,meanG1=meanG1,meanG2=meanG2)
ggplot(dat, aes(x, y)) +
geom_point(aes(colour = factor(x)), shape = 20, size=5, alpha = 0.5) +
scale_shape(solid = FALSE) +
ggtitle(paste("My Plot")) +
ylab("Count") +
scale_y_continuous(limits=c(0, max(dat$y))) +
theme(axis.title.x = element_blank(),
legend.position="bottom",
axis.text=element_text(size=12),
axis.title=element_text(size=12),
legend.title=element_text(size=12),
legend.text=element_text(size=12),
plot.title=element_text(hjust=0.5)) +
labs(colour = "Group", size=12) +
geom_segment(aes(x = 1, y = meanG1, xend = 2, yend = meanG2), colour="gray25", size = 0.1) +
facet_wrap(~ z, ncol = 3, scales = "free_y")
如果有人对可能导致此问题的原因提出建议 and/or 如何解决此问题,我会洗耳恭听!谢谢。
你必须从你的 ggplot 代码中删除它
scale_y_continuous(limits=c(0, max(dat$y)))
因为它是 'fixing' 所有方面的 y 轴范围