2012-11-30 80 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

謝謝!我更新了我的問題。 –