使用`+`运算符将徽标添加到ggplot页脚中

问题描述 投票:2回答:1

所以,我想在我的ggplot中添加徽标页脚,但是我想通过可以与+运算符一起使用的函数来这样做,所以我可以这样做:qplot(1:10, 1:10) + add_mylogo()

我可以得到我想要的东西:

library(magick)
library(ggplot2)
mylogo <- image_scale(image_read("https://upload.wikimedia.org/wikipedia/commons/f/f7/Stack_Overflow_logo.png"), "180")
qplot(1:10, 1:10) + labs(caption="")
grid::grid.raster(mylogo, x = .97, y = .02, just = c('right', 'bottom'), width = unit(1.2, 'inches'))

哪个生产:

enter image description here

我的问题是我想使用+将其添加到绘图中。

所以我尝试了此:

library(cowplot)
library(magick)
library(ggplot2)
mylogo <- image_scale(image_read("https://upload.wikimedia.org/wikipedia/commons/f/f7/Stack_Overflow_logo.png"), "380")
qplot(1:3, 1:3)+ labs(caption="") +
  draw_image(mylogo, x=3, y = .2, hjust=.7, vjust=0, scale = .5, clip=TRUE)

哪个生产:

enter image description here

所以现在我可以使用+运算符,但是我不知道如何使用任何相对定位。我使用this post看到了annotate关于相对定位的信息,并尝试了该方法,但是它不起作用

qplot(1:3, 1:3)+ labs(caption="") +
  draw_image(mylogo, x = -Inf, y = Inf, hjust=.7, vjust=0, scale = .5, clip=TRUE)
Error in if (rasterRatio > vpRatio) { : 
  missing value where TRUE/FALSE needed

因此,使用grid的第一个选项适用于相对定位,但不适用于+运算符,使用cowplot的第二个选项适用于+运算符,但不适用于相对定位。有什么办法可以同时获得两者的?

r ggplot2
1个回答
0
投票

您可以考虑使用ggtext

library(ggplot2)
library(ggtext)
qplot(1:3, 1:3) +
  labs(caption = "<img src='https://upload.wikimedia.org/wikipedia/commons/f/f7/Stack_Overflow_logo.png' width='100'/>") +
  theme(plot.caption = element_markdown())

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.