From 1e4c5260d60430cd2184ef94b3ae5309c99fadda Mon Sep 17 00:00:00 2001 From: ixxmu Date: Sat, 4 Nov 2023 21:06:36 +0000 Subject: [PATCH] =?UTF-8?q?ggplot2=E4=BC=98=E9=9B=85=E7=BB=98=E5=88=B6?= =?UTF-8?q?=E9=85=8D=E5=AF=B9=E5=85=B3=E7=B3=BB=E6=95=A3=E7=82=B9=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...63\273\346\225\243\347\202\271\345\233\276.md" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 "docs/2023-11/ggplot2\344\274\230\351\233\205\347\273\230\345\210\266\351\205\215\345\257\271\345\205\263\347\263\273\346\225\243\347\202\271\345\233\276.md" diff --git "a/docs/2023-11/ggplot2\344\274\230\351\233\205\347\273\230\345\210\266\351\205\215\345\257\271\345\205\263\347\263\273\346\225\243\347\202\271\345\233\276.md" "b/docs/2023-11/ggplot2\344\274\230\351\233\205\347\273\230\345\210\266\351\205\215\345\257\271\345\205\263\347\263\273\346\225\243\347\202\271\345\233\276.md" new file mode 100644 index 00000000..9a5d611c --- /dev/null +++ "b/docs/2023-11/ggplot2\344\274\230\351\233\205\347\273\230\345\210\266\351\205\215\345\257\271\345\205\263\347\263\273\346\225\243\347\202\271\345\233\276.md" @@ -0,0 +1,15 @@ +--- +title: "ggplot2优雅绘制配对关系散点图" +date: 2023-11-04T21:05:51Z +draft: ["false"] +tags: [ + "fetched", + "R语言数据分析指南" +] +categories: ["Acdemic"] +--- +ggplot2优雅绘制配对关系散点图 by R语言数据分析指南 +------ +

欢迎关注R语言数据分析指南

本周会员交流群内有朋友问绘制配对散点图的问题,此图使用ggpairs绘制比较方便,但是会员群内的老爷们也许有更高的要求,在此小编给出ggplot2的版本进行演示,通过批量绘图拼图的方式来完成,整个过程仅参考。希望对各位观众老爷能有所帮助。「数据代码已经整合上传到2023VIP交流群」,加群的观众老爷可自行下载,有需要的朋友可关注文末介绍加入VIP交流群。

library(tidyverse) 
library(GGally) 
library(patchwork) 
library(ggpubr)    # 载入 ggpubr 包,提供了添加统计注释的功能

ggpairs绘制配对关系散点图

ggpairs(iris, columns=1:4, aes(color=Species), upper = "blank") + 
  theme_minimal() # 使用最小主题
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"# 隐藏图例

定义函数

定义函数的目的在于批量出图可以简化代码

# 用于创建带有相关性标签的散点图
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))

拼图

((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)))

本节内容介绍到此结束,过程仅供参考;有需要学习时间可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」购买「2023年度会员文档」同步更新中「售价149元」,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;按照往年数据小编年产出约在150+以上

购买后微信发小编订单截图即邀请进新的会员交流群,小编的文档为按年售卖,只包含当年度的「除系列课程外」的文档,有需要往年文档的朋友也可下单购买,需要了解更多信息的朋友欢迎淘宝店铺交流咨询。

淘宝扫一扫

淘宝店铺(有需要欢迎关注)

关注下方公众号下回更新不迷路

+
+原文链接