为图像添加颜色图例

时间:2013-03-03 17:04:43

标签: image r legend

我有一个矩阵,我使用image(matrix)制作了一张图片。有没有为我的图像添加颜色的图例,就像我在为图表添加图例时一样?

3 个答案:

答案 0 :(得分:12)

或者传说可以像这样提供:

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

其中grconvertX()和grconvertY()以及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 :(得分:8)

R中的

image是一个相当基本的绘图功能。如果您想要一个能够自动为图例分配空间的函数,您可能需要查看filled.contour。或试试这个:

 library(lattice)
 levelplot(matrix)

答案 2 :(得分:4)

从包fields,您可以尝试image.plot。此功能基于常规image,但它提供了图例。

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