gpt4 book ai didi

r - ggplot2:根据列表和常见图例在多个页面上绘制图表

转载 作者:行者123 更新时间:2023-12-05 04:05:04 24 4
gpt4 key购买 nike

我尝试使用帖子 ggplot2: Plots over Multiple pages 中的代码.我可以让它工作一些,但我似乎无法弄清楚如何将图表数量更改为每页 4 个。我的代码将每页绘制 4 个图表,但在第二页上它从列表中的第三个图表开始(它已经绘制了第一页),重新绘制列表中的第四个,然后转到第五个和第 6 名,而完全跳过第 7 名。

我似乎也无法使 pdf 输出左侧的文本正常工作。

My data is here

这是我目前拥有的代码:

plist = lapply(split(ChlFPALL, ChlFPALL$Tank), function(d) {
ggplot(data=d, aes(x=TimePoint, y=Chl, group=Variable, colour=Color, shape=Shape)) +
geom_line(size=1) +
geom_point(size=4) + scale_x_continuous(breaks = seq(0, 2, 1)) +
geom_point() +
facet_wrap(~ Tank) +
scale_y_continuous(limits=c(0, max(ChlFPALL$Chl, na.rm=TRUE))) +

theme(plot.margin=unit(rep(0.4,4),"lines"),
axis.title=element_blank()) + theme(plot.subtitle = element_text(vjust = 1),
plot.caption = element_text(vjust = 1),
axis.text = element_text(size = 10,
face = "bold", colour = "black"),
legend.text = element_text(size = 10,
face = "bold"), legend.key = element_rect(fill = NA),
legend.background = element_rect(fill = NA)) + scale_colour_manual(values = c("Bluegreen" = "#528B8B", "Cryptophyta" = "#8B4513", "Diatoms"="#A52A2A", "Green Algae" = "#008B00", "Total conc." = "#000000", "Yellow substances"= "#EEEE00"))
})

# Four pages of plots in one PDF file
pdf("FPplotsQs.pdf", 11, 8.5)
for (i in seq(1, length(plist), 2)) {
grid.arrange(grobs=plist[i:(i+3)],
ncol=2, left=expression(bold(paste("Chlorophyll", italic(" a "), mu, gL^-1))), bottom="Time (Hours)")
}
dev.off()

还有,有没有办法在页面上只获得一个常见的图例?我已经尝试了另一个示例中的代码,但无法使其正常工作。

pdf("FPplotsQs.pdf", 11, 8.5)
for (i in seq(1, length(plist), 2)) {
ggarrange(grobs=plist[i:(i+3)],
ncol=2, left=expression(bold(paste("Chlorophyll", italic(" a "), mu, gL^-1))), bottom="Time (Hours)", common.legend = TRUE)
}
dev.off()

更新:添加以下代码以完美保存图形的输出:

plots <- marrangeGrob(plist, nrow = 2, ncol = 2)

ggsave("multipage.pdf", plots, width = 11, height = 8.5, units = "in")

最佳答案

更新:添加以下代码以完美保存图形的输出:

plots <- marrangeGrob(plist, nrow = 2, ncol = 2)

ggsave("multipage.pdf", plots, width = 11, height = 8.5, units = "in")

关于r - ggplot2:根据列表和常见图例在多个页面上绘制图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51770968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com