我正在尝试为数据集中的每个“类型”绘制时间序列数据,并且我想为每个绘图包含一个放大的数据部分的插图。我可以让插图在每个单独的情节上工作,但是当我尝试使用 faceting 一次生成所有情节时问题就来了。
我用来添加插图的方法是基于这个答案:https ://stackoverflow.com/a/55635330/11985177
我用来在 pdf 中跨多个页面绘制图的方法是基于这个答案:https ://stackoverflow.com/a/48544261/11985177
require(ggplot2)
require(ggforce)
require(ggpmisc)
#create example dataframe
exampledf<- data.frame("Time"= rep(1:50, 10), "Type"= rep(1:10, each=50), "Var1"= rnorm(1000), "Var2"= rnorm(1000))
graph_inset_facet<- function(df){
mainplot<- ggplot(df,
aes(x=Time, y=value))+
geom_point(aes(y=Var1, color= "Var1"))+
geom_point(aes(y= Var2, color="Var2"))
insetdf<-tibble(x = 0.9, y = 0.9,
plot = list(mainplot +
coord_cartesian(xlim = c(40, 45)) +
labs(x = NULL, y = NULL)))
mainplot +
expand_limits(x = 0, y = 0) +
geom_plot_npc(data = insetdf, aes(npcx = x, npcy = y, label = plot))
#wd is working directory
pdf(file = paste(wd, "facet inset.pdf"))
for(i in 1:2){
print(mainplot+
facet_grid_paginate(df$Type, nrow = 5, ncol = 1, page = i))
}
dev.off()
}
这段代码确实打印了一个 pdf,其中的主图以“类型”为分面,但插图没有显示出来。我尝试在 print for 循环中使用 expand_limits 和 geom_plot_npc 函数运行代码,但插图仍然没有显示。