Je suis à la recherche de toute solution à ce problème, quels que soient les paquets utilisés.
Le problème qui se pose est que les images tracées sont déformées lorsque vous les sauvegardez à l'aide de la fonction ggsave
. Laissez-moi vous donner un exemple :
image_links = data.frame(id = c(1,2,3,4,5),
image = c("https://cdn.shopify.com/s/files/1/1061/1924/products/Smiling_Emoji_with_Eyes_Opened_large.png",
"https://cdn.shopify.com/s/files/1/1061/1924/products/Smiling_Emoji_with_Smiling_Eyes_large.png",
"https://cdn.shopify.com/s/files/1/1061/1924/products/Hushed_Face_Emoji_large.png",
"https://cdn.shopify.com/s/files/1/1061/1924/products/Disappointed_but_Relieved_Face_Emoji_large.png",
"https://cdn.shopify.com/s/files/1/1061/1924/products/Expressionless_Face_Emoji_large.png"))
mydata = data.frame(x = rnorm(100, mean = 50, sd = 20),
y = rnorm(100, mean = 50, sd = 5),
id = rep(c(1,2,3,4,5), 20))
mydata$y = mydata$y - 10*mydata$id
mydata = mydata %>% left_join(image_links, by='id')
g <- ggplot(mydata) + geom_image(aes(x=x, y=y, image=image), size=0.05)
ggsave(g, filename='[INSERT PATH HERE].png', width=width, height=height, dpi=300)
Le problème se pose lorsque vous ajustez le width
y height
les paramètres de ggsave
par exemple parce que vous voulez que les axes x et y soient dans la bonne proportion :
width = (max(mydata$x) - min(mydata$x))/10
height = (max(mydata$y) - min(mydata$y))/10
ggsave(g, filename='[INSERT PATH HERE].png', width = width, height=height, dpi=300)
Les axes x et y sont maintenant corrects, mais les images sont déformées :
Cela se produit dans N'IMPORTE QUELLE situation où vous tracez une image mais où la width
/ height
est différent du rapport d'aspect original de l'image que vous voulez ajouter.
Je recherche toute solution à ce problème, sans nécessairement se limiter à ggimage
. Il me semble très étrange que vous ne puissiez pas ajouter correctement des images à un ggplot, car j'imagine qu'il est très courant pour les gens de vouloir le faire.