转载自:http://cos.name/2009/03/scatterplot-matrix-visualization/

散点图矩阵是散点图的高维扩展,它从一定程度上克服了在平面上展示高维数据的困难,在展示多维数据的两两关系时有着不可替代的作用。R 软件就包含了各种不同版本的散点图函数,本文主要介绍散点图矩阵的设计及其在R中的实现方法,并比较它们的长短,从而审时度势,选取自己喜欢的表现方式和相应的函数。
他山之石,可以攻玉。除了辅之以不同的颜色、符号外,散点图中还可以添加其他图形元素,以增强表达力,最常见的添加剂有坐标轴须、直方图、箱线图、平滑曲线、拟合曲线等。
常见的画散点图矩阵的函数有:

  • pairs(graphics)

R中,graphics包中的pairs()是画散点图矩阵的长老级函数,它不仅可以绘制最朴素的散点图矩阵,同时也可以通过进一步设置绘图参数进行配置(参见?pairs),达到更高的要求(添加其他图形元素等)。不过进一步设置较为麻烦,幸好后面要介绍的函数已经可以满足我们常见的额外要求。

以鸢尾花数据为例,用以下代码绘制其散点图(图1),不同颜色分别代表不同品种的鸢尾花。

pairs(iris[1:4], main = "Anderson's Iris Data -- 3 species",pch = 21,bg = c("red", "green3", "blue")[unclass(iris$Species)])

图1 pairs
实际上,图1已经可以给我们很多信息,包括各类鸢尾花的花瓣、花萼长宽的大体分布以及它们两两之间的关系。

  • scatterplot.matrix(car)

car包中的scatterplot.matrix()函数(可以简写为spm())可以直接指定散点图中主对角线上的绘图元素(密度图、箱线图、直方图、QQ图等),还可以在散点图中添加拟合曲线、平滑曲线、相关读椭圆等。

同样利用鸢尾花数据,下面代码画出其散点图矩阵(图2).

library(car)
spm(~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width |Species, data = iris)

图2 spm

  • gpairs(YaleToolkit)

YaleToolKit包中的gpairs()函数同样可以绘制散点图矩阵,较之spm()函数,它更为复杂一些。下面代码得到图3,更多的例子参见帮助文档。

library(YaleToolkit)
gpairs(iris, upper.pars = list(scatter = 'stats'),scatter.pars = list(pch = 1:3,col = as.numeric(iris$Species)),stat.pars = list(verbose = FALSE))

图3 gpairs

  • splom(lattice)

lattice包是基于网格系统的,是S-PLUS里的Trellis图形在R中的实现。Trellis是多元数据可视化的方法,特别适用于发现各变量之间的相互作用关系。Lattice(Trellis)的主要想法是不同条件下的多个图:根据某变量的值的不同对两个变量作不同图。

lattice包中的splom()函数可以按类别绘制散点图矩阵,也可以通过进一步的设置达到更高的要求。下面的代码再次得到鸢尾花数据的散点图矩阵(图4)。

library(lattice)
super.sym <- trellis.par.get("superpose.symbol")
splom(~iris[1:4], groups = Species, data = iris,panel = panel.superpose,key = list(title = "Three Varieties of Iris",columns = 3,points = list(pch = super.sym$pch[1:3],col = super.sym$col[1:3]),text = list(c("Setosa", "Versicolor", "Virginica"))))

图4 splom

讨论

益辉曰:

曾经有人问我认为什么统计方法最好,我不假思索地回答,‘散点图’ 呗!当然,这里面也有开玩笑的成份,但意思也是想表达统计方法的应用,应该能让人家容易理解你的意图。

散点图直观明了,是一类重要的可视化方法。以上文字仅仅简要介绍了四个绘制散点图矩阵的函数,很是粗糙,具体的细节还需要进一步阅读帮助文档。

本文的首要目的是提醒大家可以让散点图矩阵如虎添翼,主要是与其他图形(触须图、直方图、箱线图、平滑线、拟合线等)的适当搭配;第二目的是希望大家通过上面的介绍,可以选择自己需要的绘图函数,从而省去一些不必要的探索时间。

不同版本的散点图矩阵相关推荐

  1. Matlab如何绘制散点图矩阵,不同版本的散点图矩阵

    散点图矩阵是散点图的高维扩展,它从一定程度上克服了在平面上展示高维数据的困难,在展示多维数据的两两关系时有着不可替代的作用.R 软件就包含了各种不同版本的散点图函数,本文主要介绍散点图矩阵的设计及其在 ...

  2. R语言 -- car::scatterplotmatrix散点图矩阵 参数详解

    最近为了帮忙媳妇绘制医学SCI文章,学习了下R语言. 在R语言实战第二版书,第八章回归分析时,用到了scatterplotmatrix 函数绘制散点图矩阵,发现已经不是当前最新的car包了,函数参数都 ...

  3. R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化PCA所有的主成分绘制散点图矩阵、降维后的两个(三个)核心主成分的二维、三维可视化图形、方差解释的量、载荷图等

    R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化PCA所有的主成分绘制散点图矩阵.降维后的两个(三个)核心主成分的二维.三维可视化图形.方差解释的量.载荷图等 目录

  4. R语言散点图可视化:自定义标题和标签、拟合回归线、lowess为散点图添加平滑拟合线、修改散点图中点颜色和点符号、分组散点图、添加图例、pairs可视化散点图矩阵、ggplt2可视化、lattice

    R语言散点图可视化:自定义标题和标签.拟合回归线.lowess为散点图添加平滑拟合线.修改散点图中点颜色和点符号.分组散点图.添加图例.pairs可视化散点图矩阵.ggplt2可视化.lattice ...

  5. python绘图矩阵散点图_Python实践:seaborn的散点图矩阵(Pairs Plots)可视化数据

    如何快速创建强大的可视化探索性数据分析,这对于现在的商业社会来说,变得至关重要.今天我们就来,谈一谈如何使用python来进行数据的可视化! 一旦你有了一个很好的被清理过的数据集,下一步就是探索性数据 ...

  6. Python:seaborn的散点图矩阵(Pairs Plots)可视化数据

    散点图矩阵让我们看到了两个变量之间的关系,分析趋势. 在本文中,我们将通过使用seaborn可视化库在Python中进行对图的绘制和运行.我们将看到如何创建默认配对图以快速检查我们的数据,以及如何自定 ...

  7. [Python] 散点图(二维散点图、三维散点图、散点图矩阵)

    目录 1 两主特征:二维散点图 1.1 二维散点图 1.2 二维分类散点图 1.3 气泡图 2 三主特征:三维散点图 2.1 三维散点图 2.2 三维分类散点图 3 多主特征:二维散点图矩阵 3.1 ...

  8. Python实现散点图和散点图矩阵的绘制

    说明:代码运行环境为 Win10+Python3+jupyter notebook 散点图和趋势线的简单介绍: 散点图一般用于描述两个数量型变量之间的相关关系,而趋势线是显示相关性近似程度的一条直线. ...

  9. R语言绘图|散点图矩阵

    散点图矩阵是一种对多个变量两两之间的关系进行可视化的有效方法.本文分别以graphics.psych.GGally.car.lattice等5种不同的package为例,展示散点图矩阵的绘制过程. 数 ...

最新文章

  1. 计算机统考分数短信显示合格,今年起全省八年级网考信息技术 成绩不合格不能升高中...
  2. ssis面试题_SSIS面试问题
  3. Source Insight 中查看日文注释
  4. pythonscipy教程_Python学习教程(Python学习路线):Python—SciPy精讲
  5. Multisim 安装、破解、汉化、卸载教程
  6. selenium滑块拖动验证(携程)
  7. gst 笔记1:信号、消息、事件、状态
  8. html明月几时有古诗,古诗词赏析|苏轼《水调歌头·明月几时有》
  9. js 实现 图片刷新 验证码 看不清 换一张
  10. php 随即英文,PHP生成随机英文用户名
  11. gif动图可以压缩大小吗?gif图片怎么压缩?
  12. 150行Python代码模拟太阳系行星运转
  13. 根轨迹的基本概念与绘制
  14. 浅谈量子量化股票交易的基本原理
  15. 网友8年观察楼市得出11大房价经验 高手在民间
  16. 杰理之内部flash【篇】
  17. [C]二维数组的初始化规则
  18. 微信小游戏 资源服务器,Cocos Creator 微信小游戏 远程资源设置
  19. python日期工具datedays
  20. 90%、80%成本 集中度

热门文章

  1. android高仿微信视频编辑页-视频多张图片提取
  2. c语言删除文件 Windows,基于Windows API实现遍历所有文件并删除的方法
  3. opencv 实现等值线_OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)...
  4. Git (13) -- Git 分支 -- 分支的新建与合并
  5. Makefile之eval与call用法
  6. H264/H265之NALU结构(三)
  7. Android USB(type-c)耳机(十)
  8. 多速率多传感器数据融合估计(二)
  9. amd显卡用黑苹果输出黑屏_教大家黑苹果英伟达免驱显卡黑屏怎么解决的方法
  10. python编写登录接口_使用python编写一个登录接口