我需要帮助将图表处理成多个pdf页面。这是我目前的代码:
file <- read.csv(file="file.csv")
library(ggplot2)
library(gridExtra)
library(plyr)
gg1 <- ggplot() +
geom_line(aes(x=TIME, y=var1, colour = "z1"), file) +
geom_line(aes(x=TIME, y=var2, colour = "z2"), file) +
geom_point(aes(x=TIME, y=var3), file) + facet_wrap( ~ ID, ncol=5)+
xlab("x") +
ylab("Y") +
ggtitle(" x ") + scale_colour_manual(name="Legend",
values=c(z1="red", z2 ="blue")) + theme(legend.position="bottom")
gg10 = do.call(marrangeGrob, c(gg1, list(nrow=4, ncol=4)))
ggsave("need10.pdf", gg10)
这是创建的图像,没有分割我的图像
我希望有一个代码可以在多个页面中以4乘4的布局绘制我的绘图。我的代码的最后两行需要调整,我不知道如何自己修复它。
答案 0 :(得分:12)
ggplus
包装器似乎可以执行您想要的操作。我在下面的代码块中更改了原始内容中的一些内容:facet_wrap
已注释掉,file
已移至ggplot
,因此无需重新指定在每个geom_*
中:
gg1 <- ggplot(file) +
geom_line(aes(x=TIME, y=var1, colour = "z1")) +
geom_line(aes(x=TIME, y=var2, colour = "z2")) +
geom_point(aes(x=TIME, y=var3)) +
# facet_wrap( ~ ID, ncol=5) +
xlab("x") +
ylab("Y") +
ggtitle(" x ") +
scale_colour_manual(name="Legend",
values=c(z1="red", z2 ="blue"),
labels=c("X","Y")) +
theme(legend.position="bottom")
devtools::install_github("guiastrennec/ggplus")
library(ggplus)
pdf("need10.pdf")
gg10 <- facet_multiple(plot=gg1, facets="ID", ncol = 4, nrow = 4)
dev.off()
答案 1 :(得分:0)
4年后...
由于ggplus
是deprecated,因此您可以考虑使用ggforce
。您可以使用文档中所述的任何相关facet_*
选项。例如facet_matrix
:
# Standard use:
ggplot(mpg) +
geom_point(aes(x = .panel_x, y = .panel_y)) +
facet_matrix(vars(displ, cty, hwy))