首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自`grid`包的`vpList`的参数

来自`grid`包的`vpList`的参数
EN

Stack Overflow用户
提问于 2018-12-20 04:44:50
回答 2查看 36关注 0票数 1

这可能有点傻,但是我如何动态地创建一个vpTree,比如

代码语言:javascript
运行
复制
library(grid)
grid.newpage()
vpTree( viewport(layout=grid.layout(2,2), name = "body"), vpList(viewport(name= "a"), viewport(name ="b"), viewport(name = "c"), viewport(name = "d")))
#> viewport[body]->(viewport[a], viewport[b], viewport[c], viewport[d])

我无法传递视口列表:

代码语言:javascript
运行
复制
library(grid)
grid.newpage()
n <- c(viewport(name= "a"), viewport(name ="b"), viewport(name = "c"), viewport(name = "d"))
vpTree( viewport(layout=grid.layout(2,2), name = "body"), vpList(n))
#> Error in vpListFromList(vps): only viewports allowed in 'vpList'

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-20 23:37:21

vpList做的第一件事是将它的参数转换成一个列表。我需要用一个自定义函数覆盖网格中的vpList函数,以绕过列表

代码语言:javascript
运行
复制
> vpList
function (...) 
{
    vps <- list(...)
    vpListFromList(vps)
}
<bytecode: 0x000002e14a815a60>
<environment: namespace:grid>

代码语言:javascript
运行
复制
vpList <- function (vps) 
{
  grid:::vpListFromList(vps)
}

如下所示:

代码语言:javascript
运行
复制
library(grid)
grid.newpage()

vpListX <- function (vps) 
{
  grid:::vpListFromList(vps)
}


n <- list(viewport(name= "a"), viewport(name ="b"), viewport(name = "c"), viewport(name = "d"))
vpTree( viewport(layout=grid.layout(2,2), name = "body"), vpListX(n))
票数 0
EN

Stack Overflow用户

发布于 2018-12-20 05:05:02

您创建vpList的方式不正确。试试这个-

代码语言:javascript
运行
复制
##Supply same list to variable and then pass it in function

library(grid)
grid.newpage()
n <- vpList(viewport(name= "a"), viewport(name ="b"), viewport(name = "c"), viewport(name = "d"))
vpTree( viewport(layout=grid.layout(2,2), name = "body"), n)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53858896

复制
相关文章

相似问题

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