2012-11-30 42 views
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中有效,但是只有在重新启动之后,点击“Clear All”后RStudio的绘图设备窗格。

UPDATE2:现在我们取得了一些进展:它仅在“全部清除”,在RStudio,其次是grid.lines声明一下,当工作(不grid.newpage()语句)

+0

你能否对这个问题更具体一些,因为至少对我来说这两个命令都给出了相同的结果(垂直线)。 –

+0

对我来说,第二个不起作用。也许它与平台有关(我使用Windows)。 –

+0

对我来说它在MacOS上工作 –

回答

1

我不t认为问题是由于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') 

会注意到纳伊夫用你的时候将函数传递给一个没有任何关联单位的数字向量。

+0

对我来说,它是相同的输出。不过,感谢你,我发现它只能在没有grid.newpage()命令的情况下工作。 (请参阅我的问题更新2)。 –

+0

@MartijnTennekes不,经过调查!我更新我的解决方案! – agstudy

+0

确实有效,谢谢!奇怪的是,grid.rect在没有将default.units改为naif的情况下工作。 –

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

ř版本2.15.2(2012年10月26日) 平台:x86_64的-W64-的mingw32/64(64位)

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

附基础包: [1]格统计图形grDevices utils的数据集的方法基础

+0

谢谢!我更新了我的问题。 –