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包,我在簡書寫了介紹和簡單使用 devtools::install_github("thomasp85/patchwork")
導(dǎo)入:
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
我們不用創(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
定義了一些有意思的操作符,,簡化了上面的嵌套語法。-
操作符將左右兩邊的對(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
提供了*
與&
用來簡化代碼,它們都可以將同一個(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語言導(dǎo)入導(dǎo)出數(shù)據(jù)的幾種方法匯總
這篇文章主要給大家總結(jié)介紹了R語言導(dǎo)入導(dǎo)出數(shù)據(jù)的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03R語言-實(shí)現(xiàn)將向量轉(zhuǎn)換成一個(gè)字符串
這篇文章主要介紹了R語言-實(shí)現(xiàn)將向量轉(zhuǎn)換成一個(gè)字符串,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04R語言dplyr包之高效數(shù)據(jù)處理函數(shù)(filter、group_by、mutate、summarise)詳解
這篇文章主要介紹了R語言dplyr包之高效數(shù)據(jù)處理函數(shù)(filter、group_by、mutate、summarise)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03R語言技巧Rcpp與Eigen庫之間的相互轉(zhuǎn)換
這篇文章主要為大家介紹了R語言中Rcpp與Eigen庫之間的相互轉(zhuǎn)換的技巧操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11