R語言ggplot2拼圖包patchwork安裝使用
引言
patchwork是基于ggplot2的拼圖包,因?yàn)?code>ggplot2本身沒有強(qiáng)大的拼圖語法,而一般使用的gridExtra與cowplot的拼ggplot2圖形都存在不少問題。
我關(guān)注這個(gè)包蠻久了,現(xiàn)在Github上的Star數(shù)已經(jīng)遠(yuǎn)超大部分的R包,但似乎還沒有發(fā)布到CRAN。我的工作看似跟作圖相關(guān),寫的博文大多數(shù)也如此,但實(shí)際對(duì)圖形的掌控力并不咋的,所以還是要多多學(xué)習(xí)。
下面進(jìn)入正題,掌握好ggplot2與patchwork的基本用法,一般的圖形都可以搞定了,并必要搞的很復(fù)雜。解決問題是關(guān)鍵,認(rèn)真工作也是關(guān)鍵,畫圖看起來是,其實(shí)不是。
安裝
# 需要提取安裝好devtools包,
# 如果你解決安裝和載入包很麻煩,可以試試pacman包,我在簡(jiǎn)書寫了介紹和簡(jiǎn)單使用
devtools::install_github("thomasp85/patchwork")
導(dǎo)入:
p_load(patchwork) # 或 # library(patchwork)
例子
patchwork的使用灰常簡(jiǎn)單,使用+把要拼的圖加在一起就可以了。
library(ggplot2) library(patchwork) p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp)) p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear)) p1 + p2

我們不用創(chuàng)建對(duì)象,也可以像ggplot2本身使用一樣相加。
ggplot(mtcars) + geom_point(aes(mpg, disp)) + ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))

另外,可以使用布局函數(shù)plot_layout對(duì)拼接細(xì)節(jié)進(jìn)行更細(xì)致地指定,像每個(gè)圖的范圍,圖形的排列。
p1 + p2 + plot_layout(ncol = 1, heights = c(3, 1))

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

增加花括號(hào)的使用進(jìn)行嵌套可以布置更復(fù)雜的圖形:
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'

括號(hào)也是可以的:
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'
高級(jí)特性
除了將圖形添加到一起,patchwork定義了一些有意思的操作符,,簡(jiǎn)化了上面的嵌套語法。-操作符將左右兩邊的對(duì)象放在同一個(gè)嵌套層,而不是像+號(hào)把右邊放入左邊的嵌套層。
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'

現(xiàn)在p1+p2與p3在同一嵌套層。
|與/操作符可以用來水平和垂直布局。
(p1 | p2 | p3) /
p4
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

子圖多的時(shí)候同時(shí)修改圖形比較麻煩,patchwork提供了*與&用來簡(jiǎn)化代碼,它們都可以將同一個(gè)操作應(yīng)用到所有圖形。
(p1 + (p2 + p3) + p4 + plot_layout(ncol = 1)) * theme_bw() ## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

需要注意*只會(huì)應(yīng)用到當(dāng)前嵌套層。
p1 + (p2 + p3) + p4 + plot_layout(ncol = 1) & theme_bw() ## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

&可以用遞歸的方式應(yīng)用到所有層面。
以上就是R語言ggplot2拼圖包patchwork安裝使用的詳細(xì)內(nèi)容,更多關(guān)于R語言ggplot2拼圖包patchwork的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- R語言ggplot2圖例修改超詳細(xì)介紹
- R語言中g(shù)gplot2繪制雙坐標(biāo)軸圖
- R語言ggplot2設(shè)置圖例(legend)的操作大全
- R語言ggplot2圖例標(biāo)簽、標(biāo)題、順序修改和刪除操作實(shí)例
- R語言包ggplot實(shí)現(xiàn)分面去掉小標(biāo)題的灰色底色小技巧
- R語言學(xué)習(xí)ggplot2繪制統(tǒng)計(jì)圖形包全面詳解
- R語言數(shù)據(jù)可視化ggplot繪制置信區(qū)間與分組繪圖技巧
- R語言使用ggplot繪制畫中畫細(xì)節(jié)放大的方法
- R語言ggplot2之圖例的設(shè)置
- R語言ggplot2包之坐標(biāo)軸詳解
- R語言ggplot在熱圖上標(biāo)注相關(guān)系數(shù)的操作方法
相關(guān)文章
R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解
這篇文章主要介紹了R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
R語言數(shù)據(jù)結(jié)構(gòu)之矩陣、數(shù)組與數(shù)據(jù)框詳解
進(jìn)行數(shù)據(jù)分析的第一步是先拿到數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于R語言數(shù)據(jù)結(jié)構(gòu)之矩陣、數(shù)組與數(shù)據(jù)框的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
R語言繪圖數(shù)據(jù)可視化pie?chart餅圖
這篇文章主要介紹了R語言繪圖數(shù)據(jù)可視化pie?chart餅圖,教大家如何用R語言來畫大餅,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02
R語言技巧Rcpp與Eigen庫之間的相互轉(zhuǎn)換
這篇文章主要為大家介紹了R語言中Rcpp與Eigen庫之間的相互轉(zhuǎn)換的技巧操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
使用R中merge()函數(shù)合并數(shù)據(jù)的方法
這篇文章主要介紹了使用R中merge()函數(shù)合并數(shù)據(jù),本文詳細(xì)介紹R中merge()函數(shù)參數(shù)及合并數(shù)據(jù)類型,利用sql的表連接概念進(jìn)行類比,簡(jiǎn)單易懂,需要的朋友可以參考下2023-03-03

