У меня есть матрица, в которой я сделал изображение с использованием 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)