Показать изображения на графике в R, используя для цикла - PullRequest
0 голосов
/ 02 июня 2019

У меня есть несколько изображений, я хочу добавить эти изображения на график, определив координаты.

, чтобы добавить одно изображение на график, у меня есть этот код.

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 Ответ

1 голос
/ 02 июня 2019

Может быть, что-то вроде приведенного ниже кода покажет, как сделать то, что просит вопрос.Это не полное решение, так как фактические координаты графа варианта использования не будут одинаковыми.

Очевидный трюк заключается в смещении изображения

  • по вертикали путем изменения только координат y.Добавьте одинаковое количество к ybottom и ytop, чтобы сохранить пропорции.
  • по горизонтали , изменив только координаты x.Добавьте одинаковые суммы к xleft и xright, чтобы сохранить пропорции.

В случае с рисунком добавленная сумма была 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

...