图像顶部有几个ggplot2图

时间:2014-11-17 00:17:05

标签: r ggplot2 lattice

我有基于ggplot2的漂亮的自定义绘图功能

我现在要做的是用这个绘制几个图 功能在背景图像之上(以png格式加载)。

我不想将地块放在常规网格上,而是 在图像上的选定位置。

(可以看到这种情节的一个例子 http://www.climatechange2013.org/images/figures/WGI_AR5_Fig10-21.jpg

在我看来,我需要在不同的环境中绘制每个绘图,以及将这些环境放置在图像的选定坐标上的方法。

任何人都可以指引我使用正确的软件包/教程/博客/等 可能有用吗?

此致 哈尔多尔

2 个答案:

答案 0 :(得分:1)

通过ggplot查看Embedded Plots: http://vita.had.co.nz/papers/embedded-plots.pdfggsubplot - 包裹。

或者通过 - ggplot2::annotation_raster“手动”完成 拍摄此图片:http://pixabay.com/static/uploads/photo/2012/04/16/12/34/squares-35798_640.png

require(ggplot2)
require(png)
library(RCurl)
myurl <- "http://pixabay.com/static/uploads/photo/2012/04/16/12/34/squares-35798_640.png"
mypng <-  readPNG(getURLContent(myurl))

df <- data.frame(x = rnorm(10), y = rnorm(10))

ggplot(df, aes(x=x,y=y)) + 
  annotation_raster(mypng, xmin=min(df$x), xmax = max(df$x), ymin=min(df$y), ymax=max(df$y)) + 
  geom_point()

现在您可以添加所需的任何图层geom_...。可能您需要相应地修改xmin, xmax, ymin, ymax

enter image description here

答案 1 :(得分:1)

在这里使用示例image一种方法:

library(png)
ima <- readPNG("C:/Users/MyPC/Desktop/rus.png")
png <- "C:/Users/MyPC/Desktop/rus.png"
ima <- readPNG(png)
library(ggplot2)

tm <- theme(
    panel.background = element_rect(fill = "transparent",colour = "black"), # or theme_blank()
    panel.grid.minor = element_blank(), 
    panel.grid.major = element_blank(),
    plot.background = element_rect(fill = "transparent",colour = NA)
)

plot.new()
lim <- par()
rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])

library(grid)
vp <- viewport(.25, 0.65, width =.3, height = .3)
pl <- ggplot(mtcars, aes(x = mpg)) + geom_histogram() + tm
print(pl, vp = vp)

pl2 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_line() + tm
vp2 <- viewport(.75, 0.65, width =.3, height = .3)
print(pl2, vp = vp2)

pl3 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_line() + tm
vp3 <- viewport(.5, 0.4, width =.3, height = .3)
print(pl3, vp = vp3)

enter image description here