披露:我不确定如何为这个问题制作一个可重复的例子。
我正在尝试使用该gridExtra
包绘制一个 grobs 列表。
我有一些看起来像这样的代码:
## Make Graphic Objects for Spec and raw traces
for (i in 1:length(morletPlots)){
gridplots_Spec[[i]]=ggplotGrob(morletPlots[[i]])
gridplots_Raw[[i]]=ggplotGrob(rawPlot[[i]])
gridplots_Raw[[i]]$widths=gridplots_Spec[[i]]$widths
}
names(gridplots_Spec)=names(morletPlots)
names(gridplots_Raw)=names(rawPlot)
## Combine spec and Raw traces
g=list()
for (i in 1:length(rawPlot)){
g[[i]]=arrangeGrob(gridplots_Spec[i],gridplots_Raw[i],heights=c(4/5,1/5))
}
numPlots = as.numeric(length(g))
##Plot both
for (i in 1:numPlots){
grid.draw(g[i],ncol=2)
}
让我看一下代码。
morletPlots
= ggplots 列表
rawplot
= ggplots 列表
gridplots_spec
和gridplots_Raw
= 来自上面制作的 ggplots 的 grobs 列表。
g
= 上面两个 grobs 的列表组合在一起gridplots_spec[1]
,gridplots_raw[1]
以此类推,以此类推,以获取列表的长度。
现在我的目标是将所有这些分成两列。但是每当我通过gridplots_spec[i]
grid.draw 循环时,我都会收到一个错误:
Error in UseMethod("grid.draw") :
no applicable method for 'grid.draw' applied to an object of class "list"
我不能取消它,因为它只是变成了一个长字符向量。有任何想法吗?
如果这绝对至关重要,我可以花时间制作一个可重复的示例,但我更有可能只是错过了一个简单的步骤。