You forgot to pop the viewport, so your second grid.table
was still in first viewport. So just use popViewport()
after each grid.table
commands and it should work.
library(gridBase)
library(gridExtra)
pdf("test-grid.pdf")
par(mfrow=c(2,2))
data(mtcars)
sample_table1 <- matrix(1,3,5)
sample_table2 <- matrix(2,2,2)
plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table1)
popViewport()
plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table2)
popViewport()
plot(mtcars$mpg, mtcars$cyl)
plot(mtcars$disp, mtcars$hp)
dev.off()