代码语言:javascript复制
library(tidyverse)
library(GGally)
library(patchwork)
library(ggpubr) # 载入 ggpubr 包,提供了添加统计注释的功能
ggpairs绘制配对关系散点图
代码语言:javascript复制ggpairs(iris, columns=1:4, aes(color=Species), upper = "blank")
theme_minimal() # 使用最小主题
代码语言:javascript复制iris %>% as_tibble() %>% # 将 iris 数据集转换为 tibble
ggplot(aes(Sepal.Length, Sepal.Width, color=Species), shape=21) # 设置散点图的美学映射
geom_point(aes(fill=Species)) # 添加散点图层,填充颜色表示种类
scale_color_manual(values=c("#788FCE", "#A88AD2", "#E6956F")) # 手动设置颜色
ggpubr::stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~"), group=1), color="black",
label.x.npc = "left") # 添加统计相关性标签
theme_classic() # 使用经典主题
theme(legend.position = "none") # 隐藏图例
定义函数
代码语言:javascript复制❝定义函数的目的在于批量出图可以简化代码 ❞
# 用于创建带有相关性标签的散点图
plot_scatter <- function(data, x, y, colors) {
ggplot(data, aes_string(x = x, y = y, color = "Species", fill = "Species")) # 设置散点图的美学映射
geom_point(shape = 21) # 添加散点图层
scale_color_manual(values = colors) # 手动设置颜色
scale_fill_manual(values = colors) # 手动设置填充颜色
stat_cor(aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~"), group = 1),
color = "black", label.x.npc = "left", label.y.npc = "top", size=3) # 添加统计相关性标签
theme_classic() # 使用经典主题
theme(legend.position = "none", # 隐藏图例
axis.ticks = element_blank(), # 隐藏坐标轴刻度
axis.text = element_blank()) # 隐藏坐标轴文本
labs(x = NULL, y = NULL) # 移除坐标轴标签
}
# 选择 iris 数据集中的数值列
numeric_cols <- iris %>% select_if(is.numeric) %>% names()
colors <- c("#788FCE", "#A88AD2", "#E6956F") # 设置颜色
# 获取所有唯一的列对组合
combinations <- combn(numeric_cols, 2, simplify = FALSE)
# 为每对组合创建散点图
plots <- map(combinations, ~plot_scatter(as_tibble(iris), .x[1], .x[2], colors))
拼图
代码语言:javascript复制((plots[[1]] labs(y="Sepal.Width") theme(axis.text.y=element_text(color="black",size=8)))
plot_spacer() plot_spacer())/
((plots[[2]] labs(y="Petal.Length") theme(axis.text.y=element_text(color="black",size=8)))
plots[[4]] plot_spacer())/
((plots[[3]] labs(x="Sepal.Length",y="Petal.Width")
theme(axis.text=element_text(color="black",size=8)))
(plots[[5]] labs(x="Sepal.Width")
theme(axis.text.x=element_text(color="black",size=8)))
plots[[6]] labs(x="Petal.Length")
theme(axis.text.x=element_text(color="black",size=8)))