patchwork 包

参见:https://www.geeksforgeeks.org/how-to-add-image-to-ggplot2-in-r/

通过inset_element 函数将图像加到ggplot 图层上。

不过个人感觉不是很好用。

cowplot 包

参见:https://wilkelab.org/cowplot/articles/introduction.html#generic-plot-annotations-1

我比较推荐cowplot。

  1. logo_url <- "/Users/appe/Nutstore Files/01-dir_for_work/3-source/2.img/peng_new_logo.png"
  2. p1 <- ggplot(tmp) + geom_boxplot(aes(Species, Sepal.Width, color = group_new)) + labs(x = "", title = "Template fot my ggplot", tag = "Fig. 1", caption = "By: Mug Peng") +
  3. scale_color_paletteer_d("ggsci::default_nejm")
  4. ggdraw() +
  5. draw_plot(p1) +
  6. draw_image(logo_url,
  7. x = 0.88, y = 0.92, hjust = 1, vjust = 1, width = 0.2, height = 0.23)

首先通过ggdraw 开一个新图层,再通过draw_plot 把ggplot 图像画出,最后再添加一个图层来展示图片(既可以是本地地址,也可以是外部链接),通过draw_image。

x,y 控制图片位置,h,v 调整位置,width, height 控制宽度长度。

03. 在图形元素上添加其他图片 - 图1

但发现问题在于,本身的图片主题会发生细微的改变,比如y 轴的名称就被调整到接近坐标轴的位置了:

03. 在图形元素上添加其他图片 - 图2

本身距离是很宽的。