ggMarginal(
p, # ggplot2对象
type = c("density", "histogram", "boxplot", "violin", "densigram"), # 边缘图的类型
margins = c("both", "x", "y"), # 在哪边绘制
size = 5, # 主图形的大小
...,
xparams = list(), # 向X轴(上方)的边缘图,添加绘图的更多参数
yparams = list(),
groupColour = FALSE, # 逻辑值,颜色是否分组
groupFill = FALSE # 逻辑值,填充是否分组
)ggExtra:为散点图添加边缘分布图(R语言)
ggExtra包可以为ggplot2对象的散点图,添加边缘的数据分布图,能分布图的类型有很多,例如,核密度图,箱线图,直方图。

如图所示,中间点的是ggplot2对象的散点图,上右两边的核密度图,分别对应了X轴和Y轴的数据分布情况。
函数解释:
下面我们来看看具体是如何使用的吧
核密度图
# 代码来源:https://www.r2omics.cn/
library(ggplot2)
library(ggExtra)
# 先用ggplot2绘制一个普通的散点图
p <- ggplot(`iris`, aes_string('Sepal.Length', 'Sepal.Width')) +
aes_string(colour = 'Species') +
geom_point() +
theme_bw() +
theme(legend.position = "bottom")
# 用ggExtra包中的ggMarginal函数绘制边缘分布图
ggMarginal(
p,
type = 'density',
margins = 'both',
size = 5,
groupColour = TRUE,
groupFill = TRUE
)
直方图
ggExtra::ggMarginal(
p,
type = 'histogram',
margins = 'both',
size = 5,
groupColour = TRUE,
groupFill = TRUE,
xparams = list(bins=10)
)
箱线图
ggExtra::ggMarginal(
p,
type = 'boxplot',
margins = 'both',
size = 5,
groupColour = TRUE,
groupFill = TRUE,
xparams = list(bins=10)
)
小提琴图
ggExtra::ggMarginal(
p,
type = 'violin',
margins = 'both',
size = 5,
groupColour = TRUE,
groupFill = TRUE,
xparams = list(bins=10)
)
密度曲线图
ggExtra::ggMarginal(
p,
type = 'densigram',
margins = 'both',
size = 5,
groupColour = TRUE,
groupFill = TRUE,
xparams = list(bins=10)
)