我正在尝试将来自grid.table的表和基本包中的绘图合并到一个单独的图中。据我所知,grid.table产生的输出类型与ggplot所产生的输出类型相同。因此,这个问题类似于这个线程中的问题:
Combine base and ggplot graphics in R figure window
我试着从那个线程中应用解决方案,但它对我不起作用。第一个表放置在正确的位置,而第二个则不是。如果grid.table生成的表不超过一个,则该线程的解决方案可以工作。我需要做什么修改,才能使它适用于几个表?
这是我的代码:
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)
plot.new()
vps <- baseViewports()
pushViewport(vps$figure)
vp1 <-plotViewport()
grid.table(sample_table2)
plot(mtcars$mpg, mtcars$cyl)
plot(mtcars$disp, mtcars$hp)
dev.off()发布于 2014-05-02 11:27:17
您忘了弹出视图,所以您的第二个grid.table仍然在第一个视图中。因此,只需在每个popViewport()命令之后使用grid.table,它就会正常工作。
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()https://stackoverflow.com/questions/23426436
复制相似问题