既然你沒有提供任何樣本數據,我將使用一個內置的數據集mtcars
。通過擴展我上面的評論,您可以創建一個新的組變量,其中包含您想要的組數。使用這個你可以做的1 3兩件事: (1)Facet_wrap
,(2)grid.arrange
,或(3)
新頁面
數據設置:
group.len <- 8
map <- data.frame(hp = unique(mtcars$hp),
new_group = rep(1:ceiling(length(unique(mtcars$hp))/group.len), each = group.len,
length.out = length(unique(mtcars$hp))))
df <- merge(mtcars, map)
刻麪包裝:
ggplot(data = df, aes(x = cyl, y = mpg, fill = as.factor(hp))) +
geom_bar(stat="identity") + facet_wrap(~new_group)

Grid.arrange:
我使用完全相同的方法,因爲在這個崗位place a legend for each facet_wrap grid in ggplot2。原來是關於得到不同的傳說每個面,但我認爲它也很適用於您的問題:
library(gridExtra)
out <- by(data = df, INDICES = df$new_group, FUN = function(m) {
m <- droplevels(m)
m <- ggplot(m, aes(as.factor(cyl), mpg, fill = as.factor(hp))) +
geom_bar(stat="identity")
})
do.call(grid.arrange, out)
新頁:
注意這裏使用了out
對象從電網。安排。這將使每個小區一個新的頁面(而不是所有在一個頁面上像grid.arrange
。
lapply(out, function(x) {x})
爲什麼不創建一個'group'變量,然後用它來刻面? –