ggplot:将图像放置在面板的一角

时间:2018-07-23 03:50:07

标签: r ggplot2

我试图找到一种方法,可以将图像插入到ggplot面板的角落,而无需每次都手动指定坐标。

在这种情况下,我试图将图形放置在右上角。

library(magick)
library(ggplot2)
library(datasets)

homer <- magick::image_read("http://icons.iconarchive.com/icons/jonathan-rey/simpsons/128/Homer-Simpson-04-Happy-icon.png")


g <- ggplot(mpg, aes(class)) +
  geom_bar() +
  labs(
    title = "Count of Auto by Class",
    subtitle = "Text to Create More Space")

g + annotation_custom(rasterGrob(homer, interpolate = TRUE),
                      xmax = Inf, ymax = Inf) +
  coord_cartesian(clip = "off")

我找到了一些可以解决这个问题的例子:

Inserting an image to ggplot outside the chart area

Corner Labels in ggplot2

但是都没有到达那儿。指定要放置图像的确切位置似乎需要对每个创建的图进行大量的反复试验,尤其是在x是分类的情况下。

我还希望保持原始图像的大小;我上面使用的代码似乎将其扩展到整个情节。

预先感谢...非常感谢。

1 个答案:

答案 0 :(得分:0)

尝试

library(grid)
a <- rasterGrob(homer, interpolate = TRUE, 
                width=unit(1,'cm'),
           x = unit(1,"npc"), y = unit(1,"npc"),
           hjust = 1, vjust=1)

g + annotation_custom(grob = a)