2013-03-03 1 views
10

私はimage(matrix)を使用して画像を作ったマトリックスを持っています。凡てのプロットを追加するときのように、私のイメージに色の伝説を追加することはありませんか?画像にカラー凡例を追加する

+0

この質問は適切に答えるにはあまりにも曖昧です。 – Jason

+6

を使用しているプログラミング言語、プラットフォーム、ライブラリなどを追加してください。@Jason rはプログラミング言語です! –

答えて

6

imageは、かなり基本的なプロット関数です。凡例のスペースを自動的に割り当てる機能が必要な場合は、filled.contourを参照してください。

library(lattice) 
levelplot(matrix) 
7

や伝説は、このように提供することができる::grconvertX()とgrconvertY()

 legend(grconvertX(0.5, "device"), grconvertY(1, "device"), 
    c("0",".5","1"), fill = colMap[c(1, 10, 20)], xpd = NA) 

とXPDは伝説がプロット領域外であることを確認しますか、これを試してみてください。 もっともらしいの例では、次のようになります。

nsamples <- 20 
    mat <- rnorm(nsamples, .5, .15) 
    dim(mat) <- c(4, 5) 
    colMap <- colorRampPalette(c("red","white","blue"))(nsamples) 
    image(1:4, 1:5, mat, col = colMap, ylab="", xlab="") 
    legend(grconvertX(0.5, "device"), grconvertY(1, "device"), 
    c("0",".5","1"), fill = colMap[c(1, 10, 20)], xpd = NA) 

p.s:私はそれが古い要求で知っていて、それが解決されます。しかし、私は似たような答えを探していて、それを見つけることができませんでした。私はこの問題を解決することを迷っているので、他の誰かがそれから恩恵を受けるかもしれないと思った。

+1

非常に役に立ちます。複数の図があるプロットでは、凡例文の前に 'par(mfrow = c(1,1)、new = TRUE、fig = c(0,1,0,1))'を使用し、むしろ「nfc」 「デバイス」よりも – jvbraun

2

パッケージfieldsから、image.plotを試すことができます。この機能は標準imageに基づいていますが、図の凡例を提供します。

library(fields) 
x = 1:10 
y = 1:15 
z = outer(x,y,"+") 
image.plot(x, y, z)