5

1 つの図に配置するプロットの数が奇数で、最後のプロットを図の最後の行の中央に表示したいと考えています。

ここにいくつかのサンプルデータがあります:

library(ggplot2)
set.seed(99)

x_1 = data.frame(z = rnorm(100))
x_2 = data.frame(z = rnorm(100))
x_3 = data.frame(z = rnorm(100))

lst = list(x_1, x_2, x_3)

lst_p = list()

for (i in 1:length(lst)) {
    lst_p[[i]] = ggplot(data=lst[[i]], aes(lst[[i]]$z)) + 
    geom_histogram() +
        xlab("X LAB") +
        ylab("Y LAB") 
}

p_no_labels = lapply(lst_p, function(x) x + xlab("") + ylab(""))

title = cowplot::ggdraw() + cowplot::draw_label("test", size = 20)

p_grid = cowplot::plot_grid(plotlist = p_no_labels, ncol = 2)

print(cowplot::plot_grid(title, p_grid, 
                         ncol = 1, rel_heights = c(0.05, 1, 0.05)))

図の中央に 3 番目のプロットが必要です。を使用してcowplotいます。

なにか提案を?ありがとう

ここに画像の説明を入力

4

4 に答える 4

1

それほど洗練されていない解決策は、最初の行の中央のプロットを空のままにすることです。

p_no_labels2<-list(p_no_labels[[1]],NULL,p_no_labels[[2]],NULL,p_no_labels[[3]])
p_grid = cowplot::plot_grid(plotlist = p_no_labels2, ncol = 3) 

ここに画像の説明を入力

于 2018-10-23T16:28:12.070 に答える