проблемы сrangeGrob под R версии 3.2.2

Я обновил свою версию R, в том числе все пакеты, и изменилась функция аранжировкиGrob (пакет gridExtra).

В моей старой версии R версии 3.1.3 я использовал его следующим образом для создания угловых меток:

загрузка пакетов r

library(ggplot2)
library(grid)
library(gridExtra)

пример данных

a <- 1:20
b <- sample(a, 20)
c <- sample(b, 20)
d <- sample(c, 20)

создать фрейм данных

mydata   <- data.frame(a, b, c, d)

создать примеры графиков

myplot1  <- ggplot(mydata, aes(x=a, y=b)) + geom_point()
myplot2  <- ggplot(mydata, aes(x=b, y=c)) + geom_point()
myplot3  <- ggplot(mydata, aes(x=c, y=d)) + geom_point()
myplot4  <- ggplot(mydata, aes(x=d, y=a)) + geom_point()

установить метки углов

 myplot1 <- arrangeGrob(myplot1, main = textGrob("A", x = unit(0, "npc")
     , y   = unit(1, "npc"), just=c("left","top"),
     gp=gpar(col="black", fontsize=18, fontfamily="Times Roman")))

 myplot2 <- arrangeGrob(myplot2, main = textGrob("B", x = unit(0, "npc")
     , y = unit(1, "npc"), just=c("left","top"),
     gp=gpar(col="black", fontsize=18, fontfamily="Times Roman")))

 myplot3 <- arrangeGrob(myplot3, main = textGrob("C", x = unit(0, "npc")
    , y  = unit(1, "npc"), just=c("left","top"),
    gp=gpar(col="black", fontsize=18, fontfamily="Times Roman")))

 myplot4 <- arrangeGrob(myplot4, main = textGrob("D", x = unit(0, "npc")
    , y = unit(1, "npc"), just=c("left","top"),
    gp=gpar(col="black",    fontsize=18, fontfamily="Times Roman")))

 grid.arrange(myplot1, myplot2, myplot3, myplot4) 

и я получил следующий сюжет, который был в порядке:

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

но под новой версией R 3.2.2 изображение выглядит так:

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

ArrangeGrob открывает для каждого textGrob новое изображение, и я получил восемь изображений на одной странице вместо четырех. Как я могу исправить, что график выглядит так, как в старой версии R и gridExtra?


person Kev    schedule 02.10.2015    source источник
comment
Была переписана gridExtra, которая не (полностью) обратно совместима - может быть проблема. Взгляните на новую вики cran.r-project.org /web/packages/gridExtra/vignettes/ . Попробуйте изменить main на top   -  person user20650    schedule 03.10.2015
comment
Спасибо большое, работает!!!   -  person Kev    schedule 03.10.2015
comment
Отличный материал, пожалуйста, не стесняйтесь писать это как ответ   -  person user20650    schedule 03.10.2015
comment
Когда я попытался сохранить результат как объект g <-arrangeGrob(myplot1, myplot2, myplot3, myplot4), я получил TableGrob, который печатается как текст, и мне понадобился plot(g) для его просмотра.   -  person Dave X    schedule 07.10.2015
comment
Doh -- stackoverflow.com/questions/31458051/ говорит, что вместо этого вам нужно grid.draw(g).   -  person Dave X    schedule 07.10.2015


Ответы (1)


Из комментария Кева:

Была переписана gridExtra, которая не (полностью) обратно совместима - может быть проблема. Взгляните на новую вики cran.r-project.org/web/packages/gridExtra/vignettes/… . Попробуйте сменить main на top — user20650

person rmstmppr    schedule 02.12.2015