使用ggplot绘制一系列图像

时间:2013-11-27 20:48:34

标签: r ggplot2

我使用for循环和R中的常规绘图函数制作了附加的图。enter image description here

我使用类似于以下代码的代码来创建它:

imagecoords <- data.frame(name=c("apple", "orange", "pear"), 
                          x=c(1, 2, 3), y=c(1,2,3))

for(i in 1:nrow(imagecoords)) {
  thisimagename <- imagecoords$name[i]
  path <- paste('~mypath/', 
                thisimagename, "_pic.png", sep="")
  thispic <- readPNG(path)  
  rasterImage(thispic, 
              xleft=imagecoords$x[i]-1, 
              xright=imagecoords$x[i]+1,
              ytop=imagecoords$y[i]+1, 
              ybottom=imagecoords$y[i]-1
  )
}

我想知道是否可以使用ggplot以类似的方式在特定位置轻松绘制一系列图像。 (经过几年的拖延,我终于学会了使用ggplot,当然,我发现它在绘制和比较子组内的数据方面更有力量,我希望使用ggplot做更多的绘图,并希望它们符合美学。)

我可以使用以下代码绘制具有平均中心点的省略号:enter image description here

apples <- data.frame(fruit=rep("apple", times=10), x=rnorm(10, mean=1), y=rnorm(10, mean=1))
oranges <- data.frame(fruit=rep("orange", times=10), x=rnorm(10, mean=2), y=rnorm(10, mean=2))
pears <- data.frame(fruit=rep("pear", times=10), x=rnorm(10, mean=3), y=rnorm(10, mean=3))

fruitdata <- rbind(apples, oranges, pears)
fruitmeans <- ddply(fruitdata, .(fruit), summarize, 
                    xmean=mean(x), ymean=mean(y))
ggplot() + 
  stat_ellipse(data=fruitdata, aes(x=x, y=y, color=factor(fruit)), level=0.95) +
  geom_point(data=fruitmeans,aes(x=xmean, y=ymean, color=factor(fruit)))

我读了this extremely helpful post,并从中推断出我可以打电话给annotation_custom六次,但这看起来有点难看。

我对ggplot的了解已经足够了解我之前的方法对于ggplot的数据处理方法有些不合时宜 - 我也很乐意制定解决问题的不同方法。

0 个答案:

没有答案