1
我想用facet_wrap
制作图形,并将它绘制在pdf文件的不同页面中。我读过儿子很多选择,并且这可以工作: R + ggplot: plotting over multiple pages 但只有当您在每个页面中具有相同的行时。ggplot,绘制多行不同行的页面
我有这样的演示数据,试图解释我的情况:
A <- data.frame(TIME = rep(c(0, 5, 10, 15, 30, 45, 60), 5))
A$C <- (1 - exp(-0.2*A$TIME))
A$ID <- rep(1:5, each = 7)
A$R <- rnorm(35, mean = 1, sd = 0.01)
A$C2 <- A$C*A$R
Pages <- 5
A2 <- A[c(1,4:8,10:22,24:35),]
所以,我有不同数量的观测的ID。我尝试使用每个ID中的观察数量来创建一个矢量(我想每个页面都有一个ID),但它不起作用。
nrws <- ddply(A2, .(ID), "nrow")
nsamp <- nrws[,2]
pdf("Test.pdf")
for (i in seq(Pages))
{
slice = seq(((i-1)*nsamp[i]),(i*nsamp[i]))
slice2 = slice[!(slice > nrow(A2))]
A3 = A2[slice2,]
p1 <- ggplot(A3, aes(x = TIME, y = C2)) +
geom_line(size = 0.5) +
geom_point(size = 1) +
facet_wrap(~ID)
print(p1)
}
dev.off()
你能帮我吗?
谢谢进步, 纳乔
你说得对,用你的解决方案(比我的容易)我不需要facet_wrap。非常感谢!! –
您可能需要使用'scale_y_continuous'来明确设置y范围,否则它会因页面而异,并且比较难以进行比较。这是'facet_wrap'自动为你做的事情,但只能在给定的'ggplot'调用中。 –