Matlab如何绘制散点图矩阵,不同版本的散点图矩阵
散點圖矩陣是散點圖的高維擴展,它從一定程度上克服了在平面上展示高維數據的困難,在展示多維數據的兩兩關系時有著不可替代的作用。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
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"))))
總結
以上是生活随笔為你收集整理的Matlab如何绘制散点图矩阵,不同版本的散点图矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java web右键菜单,win7右键菜
- 下一篇: matlab求解复杂复数方程,用matl