17

我有一个矩阵,我使用image(matrix). 是否可以像在绘图中添加图例一样为我的图像添加颜色图例?

4

3 回答 3

17

或者可以像这样提供图例:

     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)

ps:我知道这是一个旧请求并且已解决。但是,我一直在寻找类似的答案,但找不到。由于我费心解决这个问题,我想也许其他人也可以从中受益。

于 2016-01-12T20:02:41.673 回答
8

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

 library(lattice)
 levelplot(matrix)
于 2013-03-03T17:51:42.280 回答
6

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

library(fields)
x = 1:10
y = 1:15
z = outer( x,y,"+") 
image.plot(x, y, z)
于 2017-04-27T13:02:20.910 回答