Я пытаюсь построить произвольное количество гистограмм с rmarkdown, разделенным двумя столбцами. В моем примере будет всего 20 графиков, поэтому я надеялся получить по 10 графиков в каждом столбце, однако я не могу заставить это работать с grid.arrange
plot.categoric = function(df, feature){
df = data.frame(x=df[,feature])
plot.feature = ggplot(df, aes(x=x, fill = x)) +
geom_bar() +
geom_text(aes(label=scales::percent(..count../1460)), stat='count', vjust=-.4) +
labs(x=feature, fill=feature) +
ggtitle(paste0(length(df$x))) +
theme_minimal()
return(plot.feature)
}
plist = list()
for (i in 1:20){
plist = c(plist, list(plot.categoric(train, cat_features[i])))
}
args.list = c(plist, list(ncol=2))
do.call("grid.arrange", args.list)
Когда я связываю это с html, я получаю следующий вывод:
Я надеялся, что получу что-то вроде:
но даже с этим размеры фигурок все еще странные, я пробовал играть с heights
и widths
, но все равно не повезло. Извините, если это длинный вопрос
grid.arrange(grobs=lapply(1:20, function(i) ggplot() ), ncol=2)
должно работать, но вам нужно изменить размер устройства, чтобы четко видеть графики и легенды - person baptiste   schedule 09.02.2017do.call(grid.arrange, c(ggcluster,list(ncol=2)))
Это работает для меня, поскольку ggcluster представляет собой список объектов ggplot. Количество элементов ggplot в списке отличается при любом взаимодействии цикла. - person pacomet   schedule 09.02.2017