如何绘制好看的分组组合散点图?

之前,在《如何对图表批量组合、对齐、画中画、合并图例、自动化...》 一文中为大家介绍过如何使用cowplot和patchwork进行组合图表的绘制 。下面再为大家介绍两个绘制组合图表的R包,使用它们可以轻松绘制出下图这般的组合图 。

如何绘制好看的分组组合散点图?

文章插图
1. 生成数据与表格
#生成测试数据框;
set.seed(1234)
x- c(rnorm(400, mean = -1), rnorm(400, mean = 1.5),
rnorm(400, mean = 4))
y- c(rnorm(400, mean = -0.5), rnorm(400, mean = 1.7),
rnorm(400, mean = 2.5))
group- as.factor(rep(c(1, 2, 3), each = 400))
#创建数据框;
df- data.frame(x, y, group)
#预览表格前6行;
head(df)
如何绘制好看的分组组合散点图?

文章插图
#载入绘图包;
library(ggplot2)
library(dplyr)
#自定义颜色(红绿橙);
【如何绘制好看的分组组合散点图?】my3cols- c( "#FF9999", "#99CC00", "#FF9900")
#绘制主图(散点图);
p1- ggplot(df, aes(x, y)) +
geom_point(aes(color = group)) +
scale_color_manual(values = my3cols) +
theme(legend.position=c(0,1), legend.justification=c(0,1))
p1
如何绘制好看的分组组合散点图?

文章插图
#绘制上方的密度曲线图;
px- ggplot(df, aes(x)) +
geom_density(aes(fill = group), alpha=.7) +
xlab( "")+
scale_fill_manual(values = my3cols) +
theme(legend.position = "none")
px
如何绘制好看的分组组合散点图?

文章插图
#绘制右侧的密度曲线图;
py- ggplot(df, aes(y)) +
geom_density(aes(fill=group), alpha=.7) +
scale_fill_manual(values = my3cols) +
xlab( "") +
theme(legend.position = "none") + coord_flip
py
如何绘制好看的分组组合散点图?

文章插图
#绘制空图表;
blankPlot- ggplot+geom_blank(aes(1,1))+ theme_void
2. 使用gridExtra绘制组合图
#使用gridExtra包进行拼图;
library( "gridExtra")
#gridExtra包的拼图效果非常好,格子线完全是对齐的;
grid.arrange(px, blankPlot, p1, py,
ncol=2, nrow=2, widths=c(4, 1.4), heights=c(1.4, 4))
如何绘制好看的分组组合散点图?

文章插图
3. 使用aplot绘制组合图
#安装aplot包;
install.packages( "aplot")
#载入aplot包;
library(aplot)
#使用aplot包进行拼图;
ap- p1 %%
insert_top(px, height=0.3) %%
insert_right(py, width=0.3)
#查看组合效果;
ap
如何绘制好看的分组组合散点图?

文章插图
#对组合图中的子图形进行个性化调整,让刻度线对齐;
ap[1,1] - ap[1,1] + scale_x_continuous(limits = c(-5, 7.5)) + theme_classic
ap[2,2] - ap[2,2] + scale_x_continuous(limits = c(-4,6)) + theme_classic
ap[2,1] - ap[2,1] + scale_x_continuous(expand=expansion(add = c(0, 0)),limits = c(-5, 7.5)) +
scale_y_continuous(expand=expansion(add = c(0, 0)),limits = c(-4, 6)) + theme_classic
#查看调整后的效果;
ap
如何绘制好看的分组组合散点图?

文章插图
好啦,本次的分享就到这里啦!
*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容 。版权所有,侵权必究 。
基迪奥生物|专业定制测序服务
联系方式:020-39341079;service@genedenovo.com


    以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

    「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: