【发布时间】:2020-12-10 19:34:54
【问题描述】:
我有兴趣在同一页面中同时可视化两个图。一个图显示药物随时间的使用情况,另一图显示抗药性随时间的发生情况。两者的 Y 轴刻度非常不同,因此我认为将它们显示在单独的图表中很有用。
我使用以下代码将 676 个 ID(或我的数据中的元素)的两个不同图表生成到两个单独的 pdf 中。在比较一个 id 的使用和阻力如何随时间变化时,这没有帮助。相反,我想生成一个 pdf,并且在 pdf 的每一页中,我想显示同一 id/元素随时间的阻力和使用变化。所以目标是在我的 pdf 中为 676 个 id 提供 676 页,并在每个页面中显示相同 id 的使用和阻力。
我知道这可以使用 gridExtra 中的 grid.arrange 来完成,但不确定如何在循环和 lapply 中使用它。
###Resistance
Plot_list1 =list()
#this is the loop
for (i in J0$id){
temp1 <- J0%>%
filter(id==i)%>%
ggplot(aes(x = Year , y = Rest)) +
geom_line()+
geom_point()+
scale_x_continuous(breaks=c(2008, 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018))+
theme(axis.text.x = element_text(angle = 90))+
theme(legend.position = "none") +
ggtitle(i)
Plot_list1[[i]] <- temp1
}
##saving the loop in pdf
pdf("Resistance.pdf")
invisible(lapply(Plot_list1, print))
dev.off()
###Usage
Plot_list2 =list()
#this is the loop
for (i in J0$id){
temp2 <- J0%>%
filter(id==i)%>%
ggplot(aes(x = Year , y = DUL0)) +
geom_line()+
geom_point()+
scale_x_continuous(breaks=c(2008, 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018))+
theme(axis.text.x = element_text(angle = 90))+
theme(legend.position = "none") +
ggtitle(i)
Plot_list2[[i]] <- temp2
}
##saving the loop in pdf
pdf("UsageDUL0.pdf")
invisible(lapply(Plot_list2, print))
dev.off()
【问题讨论】:
-
我实际上推荐
patchwork来组合 grobs:虽然它在后台使用grid等,但在我看来,界面更好,功能更强大(</opinion>)。不管。至于创建 676 页的 pdf,如果您使用pdf(..., onefile=TRUE),那么您渲染的每个绘图都会有自己的页面。确保你print每个组合的情节。 -
关于如何使用拼凑组合图的任何提示?我运行两个循环来生成两种类型的图。我应该如何使用 pathcwork 为每个 id 组合两种类型的图表?
-
浏览Getting Started 小插图并选择最适合您的。可能就像
gg1 + gg2一样简单。