Выровняйте графики с Cowplot в сетке в R

У меня вопрос по поводу сюжета в Cowplot.

Я хочу выровнять графики (ggplot) в панели, состоящей из 3 столбцов. В первом столбце есть 2 графика (с выравниванием по вертикали), во втором столбце - 1 график, а в третьем также два графика (с выравниванием по вертикали).

Пример:

# Packages
library(tidyverse)
library(cowplot)

# Create sample data
df <- data.frame(replicate(2,sample(0:10,10,rep=TRUE)))

# Create sample plots
plot.a1 <- ggplot(df, aes(x=df$X1, y=df$X2)) +
  geom_point()

plot.a2 <- plot.a1
plot.a <- plot_grid(plot.a1, plot.a2, align = "v", ncol = 1, nrow = 2)

plot.b <- plot.a1

plot.c1 <- plot.a1
plot.c2 <- plot.a1
plot.c <- plot_grid(plot.c1, plot.c2, align = "v", ncol = 1, nrow = 2)

# Create panel figure
plot_grid(plot.a, plot.b, plot.c, labels = c("A", "B", "C"), align = "h", axis = "b", nrow = 1, ncol = 3)

Я ожидал, что при выравнивании панели по горизонтали (align = "h", axis = "b") нижняя ось графика будет выровнена правильно, однако я делаю что-то не так.

Как выровнять столбцы по горизонтали (по нижней оси)?


person user213544    schedule 18.10.2018    source источник
comment
Если вы просто опустите align = "h" из своего кода, даст ли это вам то, что вы хотите?   -  person Lyngbakr    schedule 18.10.2018
comment
Вероятно, это не решит проблему, но взгляните на этот пост в теге r-faq о том, почему вам в основном следует никогда не использовать $ внутри aes   -  person camille    schedule 18.10.2018


Ответы (1)


plot_grid создает собственные поля для результирующей панели графика.

Если вам нужно plot.b для согласования с другими, просто позвоните:

plot.b <- plot_grid(plot.a1)

Хоть и пусто. Затем в последний вызов plot_grid() передаются три одинаковых элемента.

plot_grid(plot.a, plot.b, plot.c, labels = c("A", "B", "C"), align = "h", axis = "b", nrow = 1, ncol = 3)

введите здесь описание изображения

person Nate    schedule 18.10.2018