gpt4 book ai didi

r - 在 ggplot2 中的图形上用图像标记图

转载 作者:行者123 更新时间:2023-12-04 00:52:33 26 4
gpt4 key购买 nike

所以我有这个 R 脚本,它可以生成一个带有每个点标签的散点图。像这样:

img1<-"http://blog.gettyimages.com/wp-content/uploads/2013/01/Siberian-Tiger-Running-Through-Snow-Tom-Brakefield-Getty-Images-200353826-001-628x419.jpg"
img2<-"http://blog.gettyimages.com/wp-content/uploads/2013/01/Hurricane-Sandy-Andrew-Burton-Getty-Images-154986556.jpg"
imgdata<-data.frame(c(img1,img2,img1,img2,img1,img2,img1,img2,img1,img2))
colnames(imgdata)<-"images"
txtdata<-data.frame(c("A","B","C","D","E","F","G","H","I","J"))

plotdata<-data.frame(seq(1:10),seq(11:20),txtdata,imgdata)
colnames(plotdata)<-c("var1","var2","texts","images")
ggplot(data=plotdata, aes(plotdata[,1],plotdata[,2])) +
geom_point(data=plotdata, aes(plotdata[,1],plotdata[,2])) +
geom_text(aes(label=plotdata$points,size=2, hjust=2))

这给出了一个散点图,其中每个点都标记为“A”、“B”、“C”...等。

我想要做的几乎相同,除了文本之外,我想用矢量或数据框链接中的图像标记每个点(在本例中为“imgdata”)。请注意,我选择这些图像仅作为示例;我有更多的,所以我不能手动下载它们。

最佳答案

您可以使用 annotation_custom,但这将是大量工作,因为每个图像都必须渲染为光栅对象并指定其位置。我将图像保存为 png 文件以创建此示例。

library(ggplot2)
library(png)
library(grid)

img1 <- readPNG("c:/test/img1.png")

g1<- rasterGrob(img1, interpolate=TRUE)


img2 <- readPNG("c:/test/img2.png")
g2<- rasterGrob(img2, interpolate=TRUE)


plotdata<-data.frame(seq(1:2),seq(11:12))
ggplot(data=plotdata) + scale_y_continuous(limits=c(0,4))+ scale_x_continuous(limits=c(0,4))+
geom_point(data=plotdata, aes(plotdata[,1],plotdata[,2])) +
annotation_custom(g1,xmin=1, xmax=1.5,ymin=1, ymax=1.5)+
annotation_custom(g2,xmin=2, xmax=2.5,ymin=2, ymax=2.5)

enter image description here

关于r - 在 ggplot2 中的图形上用图像标记图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20733328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com