分享

patchwork拼图对不齐怎么办?

 健明 2025-04-26 发布于广东

对于生信技能树的生信入门课班的学员,我们有两个专门的答疑专辑,里面收录了每一位学员的各种疑难杂症,每一位学员的问题我们都超认真对待,给予无微不至的解答《生信马拉松答疑》《马拉松授课互动答疑》, 欢迎各位点进去观看。

此外,最新一期生信入门就在5月5号开课,还没上车的可以看一看瞄一瞄:生信入门&数据挖掘线上直播课5月班完全适合0基础小白

下面来看看最近一位学员遇到的问题,他是一个绘图的问题:

起初我以为就是个简单的拼图呢,然后设置一下图片拼接的高度和宽度就可以了!

学员把他的结果发过来我才发现不是这样的!

下面来看看吧~

拼图问题重现

拿到学员发来的数据和代码(已获得学员准许图片打码发公众号),拼图方式如下:

# install.packages("magick")
library(magick)
library(pdftools)
library(cowplot)
library(ggplot2)
library(patchwork)

pdf_convert("barplot1.pdf", format = "png", pages = 1, dpi = 300)
pdf_convert("barplot.pdf", format = "png", pages = 1, dpi = 300)
img1 <- image_read("barplot1_1.png")
p1 <- ggdraw() + draw_image(img1)
p1
class(p1)

pdf_convert("vioplot1.pdf", format = "png", pages = 1, dpi = 300)
pdf_convert("vioplot.pdf", format = "png", pages = 1, dpi = 300)
img3 <- image_read("vioplot1_1.png")
p3 <- ggdraw() + draw_image(img3)
p3

p <- p1 / p3 
p

结果如下:

完美重现了学员的问题!

一开始我想不明白这两个图为啥要用已经生成好的pdf转成png然后读取进来再拼图呢?

详细询问看了其他的代码才知道,这两个图都是基础函数绘制保存pdf,难怪呢!走了弯路呀!

解决方案

我尝试解决的过程中,尝试了不少的参数,尤其是 patchwork 拼图的时候的height, width, 以及转为ggplot2后的theme主题发现都没有什么用,

后面发现第一个问题是图片在窗口里面显示的时候不对齐,但是只要保存出去,在文件里面看效果不一样

ggsave(file="tset.pdf", width = 6.7,height = 8)

接下来我又看了看这个代码的其他参数,然后调整如下

draw_image 这个函数里面的 scale = 1,width = 1.08, halign=0 是关键,

  • scale:图片缩放,大于1就会具有放大镜的效果
  • width = 1.08:图片横向拉伸和压缩的效果
  • halign:图片读取进来靠水平左边对齐
  • ggsave:这个函数的width, height 调整到一个合适的比例
img1 <- image_read("barplot1_1.png")
p1 <- ggdraw() + draw_image(img1,scale = 1,width = 1.08,halign=0)
p1 <- ggplotify::as.ggplot(p1)

img3 <- image_read("vioplot1_1.png")
p3 <- ggdraw() + draw_image(img3,width = 0.95,halign=0)
p3 <- ggplotify::as.ggplot(p3) 

p <- wrap_plots(p1, p3, ncol = 1, heights  = c(1,1)) +  # 两行一列
  plot_annotation(tag_levels = 'A')
ggsave(file="tset.pdf", width = 6.7,height = 8)

最终效果如下:

完美!

还有其他的解决办法吗?

当然,这个问题其实最快的就是在AI里面调整,因为都是pdf文件,对齐就不在话下啦!

这种情况我推荐AI~

如果你也有生信分析上的疑问但是不知道问谁,看看我们的入门培训班吧:生信入门&数据挖掘线上直播课5月班

我们每一期学员的学习反馈:《生信故事会》

两娃宝妈:千里奔赴来重庆相聚线下参加生信学习班的原因

从小白到成功发表生信相关的论文

破冰前行:一位生信学者的年度学习心得与感悟

异地夫妻职场妈妈的生信梦

如果可以早一点邂逅生信技能树

还有很多点击上面的专辑进去看看吧~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多