使用for循环在R中的Plot上显示图片

时间:2019-06-02 14:20:56

标签: r ggplot2 plot data-science

我有一些图像,我想通过定义坐标在绘图上添加这些图像。

要在绘图上添加单个图像,我有以下代码。

require(jpeg)
img<-readJPEG("C:/Users/dell/Desktop/0.jpg")
#now open a plot window with coordinates
plot(1:10,ty="n")
#specify the position of the image through bottom-left and top-right coords
rasterImage(img,2,2,4,4)

但是我想在R图中显示多个图像

像这样

enter image description here

预先感谢

1 个答案:

答案 0 :(得分:1)

也许下面的代码会显示出一种方法来解决问题。这不是一个完整的解决方案,因为实际用例图的坐标将不相同。

显而易见的技巧是转移图片

    通过仅更改y坐标
  • 垂直。向ybottomytop添加相同的数量以保持比例。
  • 水平,只需更改x坐标即可。向xleftxright添加相同的数量以保持比例。

在图中,添加的数量为3

library(jpeg)

img <- readJPEG(system.file("img", "Rlogo.jpg", package="jpeg"))

old_par <- par(mar = c(2, 3, 1, 1) + 0.1)

xleft <- 2
ybottom <- 21
xright <- 6
ytop <- 25

plot(seq(0, 60, length.out = 31), 0:30, type = "n")
for(i in 1:17){
  xleft <- xleft + 3
  xright <- xright + 3
  rasterImage(img, xleft, ybottom, xright, ytop)
}
for(i in 1:5){
  ybottom <- ybottom - 3
  ytop <- ytop - 3
  rasterImage(img, xleft, ybottom, xright, ytop)
}
for(i in 1:16){
  xleft <- xleft - 3
  xright <- xright - 3
  rasterImage(img, xleft, ybottom, xright, ytop)
}

par(old_par)

enter image description here