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

RStudiov0.97.237とRGui2.15.2の両方でこれを試しました。

更新:この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 に答える