R语言中包含了各种不同版本的散点图函数,魏太云在这篇文章里就对这些函数进行了讲解举例,如果需要更完整的文档,可以参考R官方站的一份关于多元数据可视化的资料。还可参考笔者之前的博文。但我们在这里希望用图形和颜色来表现这种相关关系,而非散点图矩阵。用到的R语言包是corrgram包和ellipse包。
首先我们载入DMwR包以利用其中的algae数据集。抽取其中的一部分连续数据作为研究对象。
然后用corrgram函数来绘图,其中用order参数进行了相关系数排序,相关系数阵是对称的,下半部分用颜色的深浅表现相关程度,蓝色为正相关,红色为负相关,上半部分则是用饼图的扇形来表现这种关系。
library(corrgram)
corrgram(order = T, data, lower.panel = panel.shade, upper.panel = panel.pie)
另一种方法是用ellipse包绘制相关图,要略为复杂一点,它也是rattle包在进行数据挖掘时的默认图形。加载包之后要先生成相关系数矩阵,再进行排序生成一个新的相关系数阵。然后构建包括了13种颜色的色彩库。最后用plotcorr绘图,6*corr + 7实际上是将0-1的数值映射到1-13。将其作为索引从色彩库mycolors中调取颜色。
library(ellipse) corr.data <- cor(data,use = 'complete.obs') corr.ord <- order(corr.data[1,]) corr <- corr.data[corr.ord,corr.ord] mycolors <- colorRampPalette(c("red", "white", "blue"))(13) plotcorr(corr,col = mycolors[6*corr + 7])
没有评论:
发表评论