Добавление цветовой легенды к изображению

У меня есть матрица, в которой я сделал изображение с использованием image(matrix). Есть ли возможность добавить легенду о цветах к моему изображению, как при создании легенды?

Ответ 1

image в R - довольно простая функция построения графика. Возможно, вам стоит взглянуть на filled.contour, если вы хотите, чтобы функция автоматически выделяла пространство для легенды. Или попробуйте следующее:

 library(lattice)
 levelplot(matrix)

Ответ 2

Или легенда может быть предоставлена ​​следующим образом:

     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.: Я знаю, что это старый запрос, и он решен. Однако я искал аналогичный ответ, и я не мог его найти. Поскольку я беспокоюсь о решении этой проблемы, я подумал, что, возможно, кто-то еще может воспользоваться ею.

Ответ 3

Из пакета fields вы можете попробовать image.plot. Эта функция основана на регулярной image, но она содержит легенду фигуры.

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