Overlay data onto background image

前端 未结 3 1649
余生分开走
余生分开走 2020-11-27 16:36

I recently figured out how easy it was to use a background image and map data on top of it using Tableau Public. Here is the process from their website. As you can see, it

3条回答
  •  佛祖请我去吃肉
    2020-11-27 17:33

    JPEG

    For jpeg images, you can use read.jpeg() from the rimage package.

    eg :

    anImage <- read.jpeg("anImage.jpeg")
    plot(anImage)
    points(my.x,my.y,col="red")
    ...
    

    By setting par(new=T) before the next plot command, you can construct complete plots over a background picture. (see ?par and further down)

    PNG

    PNG images you can upload using readPNG from the png package. With readPNG, you need the rasterImage command to plot (see also the help files). On Windows, one has to get rid of the alpha channel, as Windows cannot cope with per-pixel alphas up to now. Simon Urbanek was so kind as to point out this solution :

    img <- readPNG(system.file("img", "Rlogo.png", package="png"))
    r = as.raster(img[,,1:3])
    r[img[,,4] == 0] = "white"
    
    plot(1:2,type="n")
    rasterImage(r,1,1,2,2)
    

    GIF

    For gif files, you can use read.gif from caTools. Problem is that this is rotating the matrix, so you have to adjust it :

    Gif <- read.gif("http://www.openbsd.org/art/puffy/ppuf600X544.gif")
    
    n <- dim(Gif$image)
    image(t(Gif$image)[n[2]:1,n[1]:1],col=Gif$col,axes=F)
    

    To plot over this image, you have to set the par correctly, eg :

    image(t(Gif$image)[n[2]:1,n[1]:1],col=Gif$col,axes=F)
    op <- par(new=T)
    plot(1:100,new=T)
    par(op)
    

提交回复
热议问题