日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

「R」ggplot2拼图包patchwork推荐与使用

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「R」ggplot2拼图包patchwork推荐与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

生物信息學習的正確姿勢

NGS系列文章包括NGS基礎、轉錄組分析?(Nature重磅綜述|關于RNA-seq你想知道的全在這)、ChIP-seq分析?(ChIP-seq基本分析流程)、單細胞測序分析?(重磅綜述:三萬字長文讀懂單細胞RNA測序分析的最佳實踐教程 (原理、代碼和評述))、DNA甲基化分析、重測序分析、GEO數據挖掘(典型醫學設計實驗GEO數據分析 (step-by-step) - Limma差異分析、火山圖、功能富集)等內容。

patchwork是基于ggplot2的拼圖包,因為ggplot2本身沒有強大的拼圖語法,而一般使用的gridExtra與cowplot的拼ggplot2圖形都存在不少問題。

我關注這個包蠻久了,現在Github上的Star數已經遠超大部分的R包,但似乎還沒有發布到CRAN。我的工作看似跟作圖相關,寫的博文大多數也如此,但實際對圖形的掌控力并不咋的,所以還是要多多學習。

下面進入正題,掌握好ggplot2與patchwork的基本用法,一般的圖形都可以搞定了,并必要搞的很復雜。解決問題是關鍵,認真工作也是關鍵,畫圖看起來是,其實不是。

安裝

#?需要提取安裝好devtools包, #?如果你解決安裝和載入包很麻煩,可以試試pacman包,我在簡書寫了介紹和簡單使用 devtools::install_github("thomasp85/patchwork")

導入:

p_load(patchwork) #?或 #?library(patchwork)

例子

patchwork的使用灰常簡單,使用+把要拼的圖加在一起就可以了。

library(ggplot2) library(patchwork)p1?<-?ggplot(mtcars)?+?geom_point(aes(mpg,?disp)) p2?<-?ggplot(mtcars)?+?geom_boxplot(aes(gear,?disp,?group?=?gear))p1?+?p2

我們不用創建對象,也可以像ggplot2本身使用一樣相加。

ggplot(mtcars)?+geom_point(aes(mpg,?disp))?+ggplot(mtcars)?+?geom_boxplot(aes(gear,?disp,?group?=?gear))

另外,可以使用布局函數plot_layout對拼接細節進行更細致地指定,像每個圖的范圍,圖形的排列。

p1?+?p2?+?plot_layout(ncol?=?1,?heights?=?c(3,?1))

如果你想要在圖形之間添加一些空間,可以使用plot_spacer()填充一個空白格。

p1?+?plot_spacer()?+?p2

增加花括號的使用進行嵌套可以布置更復雜的圖形:

p3?<-?ggplot(mtcars)?+?geom_smooth(aes(disp,?qsec)) p4?<-?ggplot(mtcars)?+?geom_bar(aes(carb))p4?+?{p1?+?{p2?+p3?+plot_layout(ncol?=?1)} }?+plot_layout(ncol?=?1) ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x' image.png

括號也是可以的:

p3?<-?ggplot(mtcars)?+?geom_smooth(aes(disp,?qsec)) p4?<-?ggplot(mtcars)?+?geom_bar(aes(carb))p4?+?(p1?+?(p2?+p3?+plot_layout(ncol?=?1)) )?+plot_layout(ncol?=?1) ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x'

高級特性

除了將圖形添加到一起,patchwork定義了一些有意思的操作符,,簡化了上面的嵌套語法。-操作符將左右兩邊的對象放在同一個嵌套層,而不是像+號把右邊放入左邊的嵌套層。

p1?+?p2?+?p3?+?plot_layout(ncol?=?1) ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x' p1?+?p2?-?p3?+?plot_layout(ncol?=?1) ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x'

現在p1+p2與p3在同一嵌套層。

|與/操作符可以用來水平和垂直布局。

(p1?|?p2?|?p3)?/p4 ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x'

子圖多的時候同時修改圖形比較麻煩,patchwork提供了*與&用來簡化代碼,它們都可以將同一個操作應用到所有圖形。

(p1?+?(p2?+?p3)?+?p4?+?plot_layout(ncol?=?1))?*?theme_bw() ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x'

需要注意*只會應用到當前嵌套層。

p1?+?(p2?+?p3)?+?p4?+?plot_layout(ncol?=?1)?&?theme_bw() ##?`geom_smooth()`?using?method?=?'loess'?and?formula?'y?~?x'

&可以用遞歸的方式應用到所有層面。

往期精品(點擊圖片直達文字對應教程)

后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集

總結

以上是生活随笔為你收集整理的「R」ggplot2拼图包patchwork推荐与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。