Matlab如何绘制散点图矩阵,不同版本的散点图矩阵
散点图矩阵是散点图的⾼维扩展,它从⼀定程度上克服了在平⾯上展⽰⾼维数据的困难,在展⽰多维数据的两两关系时有着不可替代的作⽤。R
软件就包含了各种不同版本的散点图函数,本⽂主要介绍散点图矩阵的设计及其在R中的实现⽅法,并⽐较它们的长短,从⽽审时度势,选取⾃⼰喜欢的表现⽅式和
相应的函数。
他⼭之⽯,可以攻⽟。除了辅之以不同的颜⾊、符号外,散点图中还可以添加其他图形元素,以增强表达⼒,最常见的添加剂有坐标轴须、直⽅图、箱线图、平滑曲线、拟合曲线等。
常见的画散点图矩阵的函数有:
pairs(graphics)
matlab直方图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
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"))))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。