показать несколько графиков из ggplot на одной странице в r - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу сделать несколько ggplot в цикле и показать их на одном графике.

for ( i in 1:8) {
    g <- ggplot(data=mtcars, aes(x=hp, y=wt))+
        geom_point()
    print(g)
}

Я хочу расположить вышеприведенные графики на одной странице, в 4 строки и 2 столбца.Кто-нибудь знает как это сделать?Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы можете сохранить весь график в list, а затем использовать cowplot::plot_grid() или gridExtra::marrangeGrob(), чтобы поместить их на одну или несколько страниц

См. Также:

library(tidyverse)

plot_lst <- list()

for (i in 1:8) {
  g <- ggplot(data = mtcars, aes(x = hp, y = wt)) +
    geom_point()
  plot_lst[[i]] <- g
}

# Combine all plots
cowplot::plot_grid(plotlist = plot_lst, nrow = 4)

library(gridExtra)
ml1 <- marrangeGrob(plot_lst, nrow = 2, ncol = 2)
ml1

Дата создания 2018-09-20 представлением пакета (v0.2.1.9000)

0 голосов
/ 21 сентября 2018

Обратите внимание, что в предоставленном вами цикле счетчик i не указан на графике, поэтому в итоге вы напечатаете один и тот же график восемь раз!

Если у вас есть кучаразличные подмножества одного набора данных, и вы хотите выложить их, вы можете следить за комментариями @ PKumar и проверять фасетирование в ggplot2.По сути, он разбивает ваши данные на группы в соответствии с одним или несколькими столбцами, а затем размещает их в сетке или ленте .

С другой стороны, если у вас есть куча разных графиков, которые вы хотите объединить на одной странице, есть пара пакетов, которые могут сделать это:

  • cowplot - это достаточно зрелый пакет, который может это делать, а
  • patchwork - это более новый пакет, который позволяет выкладывать графики с использованием арифметики.

Надеюсь, что это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...