透明网格线

时间:2012-11-30 10:53:28

标签: r r-grid

我想用网格包创建透明线。

这适用(仅适用于水平和垂直线):

require(grid)
grid.newpage()
grid.rect(x=0.5, y=0.5, width=0, height=0.5, gp=gpar(col=rgb(1, 0, 0, .4)))

然而,这不是:

grid.newpage()
grid.lines(x=c(0.5, 0.5), y=c(0.25, 0.75), gp=gpar(col=rgb(1, 0, 0, .4)))

我在RStudio v0.97.237和RGui 2.15.2中都尝试了这一点。

更新:当我把第二个代码块放在一个函数中时,例如在下面的第一个答案中的dothegrid()中,它在RStudio中工作,但只有在重启之后才能在RStudio中点击“全部清除”绘图设备窗格。

UPDATE2:现在我们到了某个地方:它只在点击RStudio中的“全部清除”,然后是grid.lines语句(没有grid.newpage()语句)时才有效

2 个答案:

答案 0 :(得分:1)

我认为问题不是由于新页面命令造成的。

我玩单位:

这不起作用

 grid.newpage()
 grid.lines(x,y,   gp=gpar(col='red'),default.units = "npc")

但是,当我更改默认单位时,这项工作:

 grid.newpage()
 grid.lines(x,y,   gp=gpar(col='red',alpha=0.4),default.units='naif')

请注意,当您将函数传递给没有任何关联单位的数字向量时,将使用naif。

答案 1 :(得分:0)

不是答案,只是一些细节

require(grid)

dothegrid <- function(){
  grid.newpage()
  grid.lines(x=c(0.5, 0.5), y=c(0.25, 0.75), gp=gpar(col=rgb(1, 0, 0, 0.2)))
  grid.lines(x=c(0.4, 0.4), y=c(0.25, 0.75), gp=gpar(col=rgb(1, 0, 0, 0.6)))
}

# Window 7
# Make sure to restart RStudio/R before running this
dothegrid() # Rstudio: ok, nothing in RGui
# run again
dothegrid() # makes the lines disappear

pdf("a.pdf")
dothegrid()
dothegrid() # lines stay
dev.off()

png("a.png")
dothegrid() #lines stay
dev.off()

R版本2.15.2(2012-10-26) 平台:x86_64-w64-mingw32 / x64(64位)

区域设置: [1] LC_COLLATE = German_Germany.1252 LC_CTYPE = German_Germany.1252
[3] LC_MONETARY = German_Germany.1252 LC_NUMERIC = C
[5] LC_TIME = German_Germany.1252

附加基础包: [1] grid stats graphics grDevices utils数据集方法库