2017-02-22 8 views
1

私は格子からxyplot()を使ってグラフを作成し、grImportパッケージを使ってgrid.symbols()を使って画像をプロット記号としてプロットします。グラフキーのシンボルとして「画像」オブジェクトを使用するにはどうすればよいですか?

これは私のグラフのコードの簡単なバージョンです。ここで、 'mypic'は私がプロット記号として使用している(grImportで作成された)画像オブジェクトです。

xyplot(y~x, data=dat, 
    panel=function(x, y, ...) { 
    grid.symbols(mypic, x, y, units = "native", 
    size = unit(10, "mm"), 
    use.gc = FALSE, 
    gp = gpar(col = "white", fill = c("red","blue"))) 
}) 

私がグラフで使用したのと同じプロット記号を示す凡例を作成したいとします。このようなものがうまくいくと思いました:

key = list(... 
    points = list(pch = grid.picture(mypic)) 
) 

しかし、それはありません。

私の質問は、どのようにキーのシンボルとして使用するには、 'キー'引数に画像オブジェクトを渡すのですか?

答えて

0

私が知る限り、コードを変更することなくgrImportからkeyに写真を送る方法はありません。

私は解決策がありますが、特にキーの画像が移動して画像のサイズが変更されるため、非常に特殊です。とにかく、key(またはauto.key)を使って手動でキーに画像を置くと、望みの結果に近いものが得られます。

library(lattice) 
library(grImport) 

dat <- data.frame(x = rnorm(10), y = rnorm(10), ind = c("A", "B")) 

PostScriptTrace("petal.ps") # from https://www.jstatsoft.org/article/view/v030i04 
petal <- readPicture("petal.ps.xml") 

xyplot(y ~ x, groups = ind, data = dat, 
     auto.key = list(points = FALSE), 
     panel = function(x, y, ...) { 
     grid.symbols(petal, x, y, units = "native", 
         size = unit(4, "mm"), 
         use.gc = FALSE, 
         gp = gpar(col = "white", fill = c("red","blue"))) 
     }) 

grid.symbols(petal, c(0.55, 0.55), c(0.92, 0.95), 
      size = unit(4, "mm"), 
      use.gc = FALSE, 
      gp = gpar(col = "white", fill = c("red","blue"))) 

Imgur

関連する問題