如何將多個ggplot圖組合成可公開的圖
資料科學的生命週期離不開分析/研究結果的交流。事實上,資料視覺化是R作為一種資料科學語言相對於最著名的Python具有優勢的領域之一。由於ggplot2是R程式設計師的視覺化DSL(領域特定語言),現在的競爭變成了如何有效地使用ggplot2包在給定的位置顯示視覺化。
在本教程中,我們將學習如何組合多個ggplot圖來生成可公開的圖。我們將要使用的R包是cowplot。
關於包
正如在包描述中所提到的,“cowplot包旨在為ggplot2提供一個可釋出的主題,該主題需要最小限度地調整軸標籤的大小、圖背景等,還需要將多個圖組合成一個圖並對這些圖進行標記。”
包安裝
cowplot可以直接從CRAN安裝,使用以下程式碼:
install.packages("cowplot")
或者github的開發版本可以使用devtools安裝,也可以使用以下程式碼遠端安裝:
#install.packages("devtools") devtools::install_github("wilkelab/cowplot")
包載入
一旦安裝了這個包,我們可以使用下面的程式碼來載入cowplot(就像在R中載入的其他包一樣):
library(cowplot) library(ggplot2)
建造我們的第一個組合圖
在cowplot中,它的工作方式是,我們將各個ggplot圖分配為一個R物件(預設為ggplot型別)。這些物件最終被cowplot用來生成統一的單一圖。
在下面的程式碼中,我們將使用R的內建資料集iris構建三個不同的直方圖,然後將一個個地分配給R物件。最後,我們將使用cowplot包的函式plot_grid()來組合我們感興趣的兩個圖。
#building the first plot plot_histogram_SL <- ggplot(iris) + geom_histogram(aes(Sepal.Length), fill = "#eeff00", bins = 200) #building the second plot plot_histogram_PL <- ggplot(iris) + geom_histogram(aes(Petal.Length)) #building the third plot plot_histogram_PL_SL <- ggplot(iris,aes(Petal.Length, Sepal.Length)) + geom_point(alpha = 0.2) #Arranging Multiple Plots in Columns - 2 in 1 plot_grid(plot_histogram_SL, plot_histogram_PL_SL, labels = c('Fig B','Fig C'), label_x = 0.2, ncol = 2)
如下圖:
在上面的圖中,你可以看到這兩個圖被標註了標題/標籤圖B和圖c。正如上面的程式碼所寫,這些標籤被新增到plot_grid()函式的引數標籤中。
我們還可以通過其他方式使用cowplot來排列上面的圖。讓我們看幾個例子:
將多個圖按著2行1列組合
#Arranging Multiple Plots in Rows - 2 in 1 plot_grid(plot_histogram_PL, plot_histogram_SL, labels = c('Fig A','Fig B'), label_x = 0.2, nrow = 2)
如下圖:
3幅圖組合
#A cowplot plot with ggplot - 3 in 1 plot_grid(plot_histogram_SL, plot_histogram_PL_SL, labels = c('Fig B','Fig C'), label_x = 0.2, ncol = 2) -> new_p1 plot_grid(plot_histogram_PL, new_p1, #labels = c('Fig A','Fig B'), label_x = 0.2, nrow = 2)
如下圖:
正如上面的程式碼,我們可以把ggplot生成的圖通過cowplot組合起來。通過這種方式,我們可以根據給定的位置和業務/用例需求以多種方式組合多個ggplot圖。本教程中使用的全部程式碼可以在 github上找到 。
作者:Abdul Majed Raja 原文連結: https://datascienceplus.com/how-to-combine-multiple-ggplot-plots-to-make-publication-ready-plots/
版權宣告: 作者保留權利。文章為作者獨立觀點,不代表資料人網立場。嚴禁修改,轉載請註明原文連結:http://shujuren.org/article/822.html
資料人網: 資料人學習,交流和分享的平臺,誠邀您創造和分享資料知識,共建和共享資料智庫。