我想使用ggplot2创建多面图,其中y轴的最小限制将是固定的(例如为0),而最大限制将由小平面中的数据确定(就像scales="free_y"时一样)。我希望以下内容可以工作,但运气不好:

library(plyr)
library(ggplot2)

#Create the underlying data
l <- gl(2, 10, 20, labels=letters[1:2])
x <- rep(1:10, 2)
y <- c(runif(10), runif(10)*100)
df <- data.frame(l=l, x=x, y=y)

#Create a separate data frame to define axis limits
dfLim <- ddply(df, .(l), function(y) max(y$y))
names(dfLim)[2] <- "yMax"
dfLim$yMin <- 0

#Create a plot that works, but has totally free scales
p <- ggplot(df, aes(x=x, y=y)) + geom_point() + facet_wrap(~l, scales="free_y")
#Add y limits defined by the limits dataframe
p + ylim(dfLim$yMin, dfLim$yMax)


抛出错误(length(lims) == 2 is not TRUE)对我来说并不奇怪,但是我想不出开始解决此问题的策略。

最佳答案

在您的情况下,以下任何一种均可使用:

p + expand_limits(y=0)

p + aes(ymin=0)

关于r - 使用ggplot在刻面上创建零件固定的,无零件的轴限制吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12731835/

10-14 19:48