首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R图中将grid.table和基本包图结合起来

问在R图中将grid.table和基本包图结合起来
EN

Stack Overflow用户
提问于 2014-05-02 10:55:01
回答 1查看 2.5K关注 0票数 2

我正在尝试将来自grid.table的表和基本包中的绘图合并到一个单独的图中。据我所知,grid.table产生的输出类型与ggplot所产生的输出类型相同。因此,这个问题类似于这个线程中的问题:

Combine base and ggplot graphics in R figure window

我试着从那个线程中应用解决方案,但它对我不起作用。第一个表放置在正确的位置,而第二个则不是。如果grid.table生成的表不超过一个,则该线程的解决方案可以工作。我需要做什么修改,才能使它适用于几个表?

这是我的代码:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 11:27:17

您忘了弹出视图,所以您的第二个grid.table仍然在第一个视图中。因此,只需在每个popViewport()命令之后使用grid.table,它就会正常工作。

代码语言:javascript
复制
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()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23426436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档