pythonic生物人

喜提“Major Revision”:被审稿人质疑堆工作量,亮出“这张图”回应……

本期主角-Matrix plot,用于展示数据中各变量两两之间关系,可以规避单一统计指标的偏差,可以在平面上快速优雅的探索高维数据。一句话,一张Matrix plot实现多张图的效果,探索了数据,避免了“堆图堆工作量”的嫌疑!

Image

上图为一张典型的Matrix plot,如何读图了,由三部分构成:

  • 上三角,使用散点图,展示两两变量之间的关系,不同颜色标记出了不同的性别
  • 对角线,使用直方图,展示4个变量独自的分布,不同颜色标记出了不同的性别
  • 下三角,使用kdeplot,展示两两变量之间的关系,不同颜色标记出了不同的性别

本次使用R实现Matrix plot。


静态矩阵图

使用ggplot2扩展实现Matrix plot,一行代码即可实现,

## 16.1_01
# 未经过允许禁止转载!
# @Author  :  公众号:pythonic生物人
# @Desc    :  16.1 矩阵图(GGally方法)

ggpairs(iris_data, aes(color = species, fill = species))
Image

上图包含25张图,如果不使用Matrix plot,一个一个展示,确实有“堆工作量”的嫌疑😭😭!

下面使用“1~14章节”的ggplot2基础知识,进一步定制符合自己审美的Matrix plot,

## 16.1_02
# 未经过允许禁止转载!
# @Author  :  公众号:pythonic生物人
# @Desc    :  16.1 矩阵图(GGally方法)

ggpairs( # 🔸使用GGally中的ggpairs绘制矩阵图
  iris_data,
  aes(color = species, fill = species), # 全局映射颜色和填充至 species
  upper = list(
    continuous = wrap("smooth", # 🔸上三角回归线
      method = "lm", # 线性模型
      se = TRUE, # 无置信区间
      size = 1, # 回归线宽度
      alpha = 0.8
    ) # 透明度突出曲线
  ),
  diag = list(
    continuous = wrap("densityDiag", # 🔸对角线密度图
      alpha = 0.6, # 半透明填充
      size = 0.3
    ) # 线条粗细适中
  ),
  lower = list(
    continuous = wrap("points", # 🔸下三角散点图
      shape = 21, # 带填充的圆点
      size = 1, # 适度增大点的大小
      alpha = 0.7, # 透明度柔化重叠
      stroke = 0.3
    ) # 细轮廓线增强对比
  ),
)
Image

交互矩阵图

上一节的矩阵图为静态展示,这里介绍一种交互式方法scatterPlotMatrix,通过简单的鼠标点击即可实现代码的功能。

## 16.2_01
# 未经过允许禁止转载!
# @Author  :  公众号:pythonic生物人
# @Desc    :  16.2 交互矩阵图

library(ggplot2)
library(scatterPlotMatrix)
iris_data$species <- as.factor(iris_data$species)
scatterPlotMatrix(iris_data, controlWidgets = TRUE, width = 800, height = 700)
Image

通过简单的鼠标点击即可实现代码的功能,非常方便。同时,点击图能快速预览当前位置的xy变量实际值。


iris_data数据

iris_data使用“1.4.8 iris数据集”,

Image

Image


测试数据+详细代码,后期会加入👉《保姆级R可视化教程》

加入学习(收费,备注:299)

图片
《👉保姆级R可视化教程》,28个章节,11w字,数百张图,旨在引导如何系统学习R语言可视化,部分展示如下(更新中):
图片
图片
图片
复现效果图-abcd图❤️
复现效果图-b图❤️
图片
❤️复现效果图-ABCD图❤️
图片
❤️复现效果图-bcd图❤️
图片
图片
❤️复现效果图-b图❤️
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片

图片

图片
图片
图片

(加入学习,收费,备注:299)

图片