【问题标题】:Open plots in a null device在空设备中打开绘图
【发布时间】:2013-02-06 09:30:03
【问题描述】:

我正在使用treemap 包,我对tmPlot 如何排列绘图矩形感到满意,我想为我自己的不同绘图提取网格。一个例子如下:

library(treemap)
data(GNI2010)
dat <- tmPlot(GNI2010,
          index=c("continent", "iso3"),
          vSize="population",
          vColor="GNI",
          type="value")[[1]][[1]]

这样我可以存储我想要的矩形的坐标。问题是它也产生了一个情节。我可以看到几种阻止情节产生的方法:

.Call("R_GD_nullDevice", PACKAGE = "grDevices")
#tmPlot here
dev.off()

这实际上会将绘图发送到 NULL 设备,但它会发出警告:

R_GD_nullDevice is deprecated and will be removed shortly 

我宁愿我的代码没有这样破坏。我也可以去掉tmPlot 的相关部分,只剩下我想要的部分。这是可能的,但会有点麻烦。我打算将包含它的函数放入包中。

简而言之,可以抑制图形吗?

【问题讨论】:

  • 也许是grid.grabExpr

标签: r plot suppress r-grid


【解决方案1】:

似乎可行的一种方法是打开一个 NULL pdf 设备。我最初用png 设备尝试过这个,但不起作用。

pdf(NULL)
dat <- tmPlot(GNI2010,
          index=c("continent", "iso3"),
          vSize="population",
          vColor="GNI",
          type="value")[[1]][[1]]
dev.off()

【讨论】:

  • 这是 [R 的开发版本] (stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html) The ‘internal’ graphics device invoked by .Call("R_GD_nullDevice", package = "grDevices") has been removed: use pdf(file = NULL) instead. (在已弃用和已失效下)的建议解决方法。
  • 谢谢@mnel。我实际上是通过一些knitr 问题报告找到了答案。 pdf(file=NULL) 生成名为 NA 的文件时出现问题,该文件已得到修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 2014-08-04
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多