1

我想在散点图上绘制一组缩略图作为点。我从位于此处的答案代码开始,但它们在整个情节中重复相同的缩略图,而我有一个图像列表。

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

我试过将 thumbnail() 包装成一个循环,但情节出来是空的

for (n in length(img)){
        thumbnails(xy[n,1], xy[n,2], img[[n]])        
}

我该怎么做呢?我不明白如何引用列表中的图像,或者我是否应该将它们更改为不同的数据结构。

4

1 回答 1

0

我只需要在 thumbnails() 中去掉这条线

images <- replicate(length(x), images, simplify=FALSE)

它正在复制原始答案中给出的示例图像。之后不需要循环。

于 2016-05-11T00:27:24.467 回答