我想用网格包创建透明线。
这适用(仅适用于水平和垂直线):
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()语句)时才有效
答案 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数据集方法库