Подтвердить что ты не робот

Сюжеты, создаваемые "сюжет" и "ggplot" бок о бок

Есть ли способ поместить график, сгенерированный функцией plot, и график с помощью функции ggplot в R на одной странице бок о бок?

Легко поместить графики, созданные одной и той же функцией, на одну страницу с помощью функции par или multiplot, но я не могу понять этот вопрос.

4b9b3361

Ответ 1

Вы можете сделать это с помощью пакета gridBase и viewPorts.

library(grid)
library(gridBase)
library(ggplot2)

# start new page
plot.new() 

# setup layout
gl <- grid.layout(nrow=1, ncol=2)
# grid.show.layout(gl)

# setup viewports
vp.1 <- viewport(layout.pos.col=1, layout.pos.row=1) 
vp.2 <- viewport(layout.pos.col=2, layout.pos.row=1) 
# init layout
pushViewport(viewport(layout=gl))
# access the first position
pushViewport(vp.1)

# start new base graphics in first viewport
par(new=TRUE, fig=gridFIG())

plot(x = 1:10, y = 10:1)

# done with the first viewport
popViewport()

# move to the next viewport
pushViewport(vp.2)

ggplotted <- qplot(x=1:10,y=10:1, 'point')
# print our ggplot graphics here
print(ggplotted, newpage = FALSE)

# done with this viewport
popViewport(1)

enter image description here

Этот пример представляет собой измененную версию этого сообщения в блоге от Dylan Beaudette

Ответ 2

Да. Они представляют собой графические системы на основе сетки и возвращают графические объекты. Взгляните на функцию grid.arrange в пакете gridExtra