Я использую for loop
для назначения ggplots list
, который затем передается plot_grid()
(пакет cowplot
). plot_grid
размещает несколько ggplots рядом на одном рисунке. Это прекрасно работает вручную, но когда я использую for loop
, последний сгенерированный график повторяется в каждом подкадре рисунка (показан ниже). Другими словами, все подкадры показывают один и тот же ggplot.
Вот пример игрушки:
require(cowplot)
dfrm <- data.frame(A=1:10, B=10:1)
v <- c("A","B")
dfmsize <- nrow(dfrm)
myplots <- vector("list",2)
count = 1
for(i in v){
myplots[[count]] <- ggplot(dfrm, aes(x=1:dfmsize, y=dfrm[,i])) + geom_point() + labs(y=i)
count = count +1
}
plot_grid(plotlist=myplots)
Ожидаемая цифра:
Рисунок из for loop
:
Я попытался преобразовать элементы списка в grobs, как описано в этом вопрос, например:
mygrobs <- lapply(myplots, ggplotGrob)
plot_grid(plotlist=mygrobs)
Но я получил тот же результат.
Я думаю, что проблема заключается в назначении цикла, а не в plot_grid()
, но я не вижу, что я делаю неправильно.