4

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

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

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() 语句)

4

2 回答 2

1

我不认为问题是由于 newpage 命令。

我玩单位:

这不起作用

 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。

于 2012-11-30T11:22:52.300 回答
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 datasets methods base

于 2012-11-30T11:16:13.140 回答