R語言ggplot2拼圖包patchwork安裝使用
引言
patchwork
是基于ggplot2
的拼圖包,因為ggplot2
本身沒有強大的拼圖語法,而一般使用的gridExtra
與cowplot
的拼ggplot2
圖形都存在不少問題。
我關注這個包蠻久了,現(xiàn)在Github上的Star數(shù)已經(jīng)遠超大部分的R包,但似乎還沒有發(fā)布到CRAN。我的工作看似跟作圖相關,寫的博文大多數(shù)也如此,但實際對圖形的掌控力并不咋的,所以還是要多多學習。
下面進入正題,掌握好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
我們不用創(chuàng)建對象,也可以像ggplot2
本身使用一樣相加。
ggplot(mtcars) + geom_point(aes(mpg, disp)) + ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
另外,可以使用布局函數(shù)plot_layout
對拼接細節(jié)進行更細致地指定,像每個圖的范圍,圖形的排列。
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'
括號也是可以的:
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'
現(xiàn)在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安裝使用的詳細內容,更多關于R語言ggplot2拼圖包patchwork的資料請關注腳本之家其它相關文章!
相關文章
R語言dplyr包之高效數(shù)據(jù)處理函數(shù)(filter、group_by、mutate、summarise)詳解
這篇文章主要介紹了R語言dplyr包之高效數(shù)據(jù)處理函數(shù)(filter、group_by、mutate、summarise)的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03