我使用for循环和R中的常规绘图函数制作了附加的图。
我使用类似于以下代码的代码来创建它:
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做更多的绘图,并希望它们符合美学。)
我可以使用以下代码绘制具有平均中心点的省略号:
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的数据处理方法有些不合时宜 - 我也很乐意制定解决问题的不同方法。