1 如何把多个图组合成一幅图?
数据科学的生命周期离不开分析/研究结果的交流。事实上,数据可视化是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 inRows - 2in1
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- 本文固定链接: https://maimengkong.com/image/999.html
- 转载请注明: : 萌小白 2022年6月19日 于 卖萌控的博客 发表
- 百度已收录