Я хотел бы построить набор миниатюр в виде точек на диаграмме рассеяния. Я начал с кода ответа, расположенного here, но они повторяют один и тот же миниатюру во всем графике, тогда как у меня есть список изображений.R - отображение эскизов (находящихся в списке) на диаграмме рассеяния
xy <- data.frame(x=runif(337, 0, 100), y=runif(337, 0, 100))
imgfiles <- list.files(getwd(),pattern="*-scaled.png")
img <- lapply(imgfiles,function(x) readPNG(x))
thumbnails <- function(x, y, images, width = 0.1*diff(range(x)),
height = 0.1*diff(range(y))){
images <- replicate(length(x), images, simplify=FALSE)
stopifnot(length(x) == length(y))
for (ii in seq_along(x)){
rasterImage(images[[ii]], xleft=x[ii] - 0.5*width,
ybottom= y[ii] - 0.5*height,
xright=x[ii] + 0.5*width,
ytop= y[ii] + 0.5*height, interpolate=FALSE)
}
}
plot(xy, t="n")
thumbnails(xy[,1], xy[,2], img[[11]]) # this works but the same image is repeated
Я попытался оберточной миниатюру() в цикле, но сюжет выходит пустой
for (n in length(img)){
thumbnails(xy[n,1], xy[n,2], img[[n]])
}
Как мне это сделать? Я не понимаю, как ссылаться на изображения внутри списка, или я должен изменить их на другую структуру данных.