精华内容
下载资源
问答
  • 相关系数图可视化

    千次阅读 2017-07-24 11:18:00
    相关系数图 junjun 2016年4月6日 參考:刘顺祥作品 尽管cor()函数能够很方便快捷的计算出连续变量之间的相关系数,但当变量许多时,返回的相关系数一定时读者看的眼花缭乱。 以下就以R自带的mtcars...

    參考:刘顺祥作品

    尽管cor()函数能够很方便快捷的计算出连续变量之间的相关系数,但当变量许多时,返回的相关系数一定时读者看的眼花缭乱。

    以下就以R自带的mtcars数据集为例,讲讲相关系数图的绘制:

    cor(mtcars[1:7])
    ##             mpg        cyl       disp         hp        drat         wt
    ## mpg   1.0000000 -0.8521620 -0.8475514 -0.7761684  0.68117191 -0.8676594
    ## cyl  -0.8521620  1.0000000  0.9020329  0.8324475 -0.69993811  0.7824958
    ## disp -0.8475514  0.9020329  1.0000000  0.7909486 -0.71021393  0.8879799
    ## hp   -0.7761684  0.8324475  0.7909486  1.0000000 -0.44875912  0.6587479
    ## drat  0.6811719 -0.6999381 -0.7102139 -0.4487591  1.00000000 -0.7124406
    ## wt   -0.8676594  0.7824958  0.8879799  0.6587479 -0.71244065  1.0000000
    ## qsec  0.4186840 -0.5912421 -0.4336979 -0.7082234  0.09120476 -0.1747159
    ##             qsec
    ## mpg   0.41868403
    ## cyl  -0.59124207
    ## disp -0.43369788
    ## hp   -0.70822339
    ## drat  0.09120476
    ## wt   -0.17471588
    ## qsec  1.00000000

    非常显然,这么多数字堆在一起肯定非常难高速的发现变量之间的相关性大小,假设能够将相关系数可视化,就能弥补一大堆数字的缺陷了。这里介绍corrplot包中的corrplot()函数进行相关系数的可视化,首先来看看该函数的语法和一些重要參数: corrplot(corr, method = c(“circle”, “square”, “ellipse”, “number”, “shade”, “color”, “pie”), type = c(“full”, “lower”, “upper”), add = FALSE, col = NULL, bg = “white”, title = “”, is.corr = TRUE, diag = TRUE, outline = FALSE, mar = c(0,0,0,0), addgrid.col = NULL, addCoef.col = NULL, addCoefasPercent = FALSE, order = c(“original”, “AOE”, “FPC”, “hclust”, “alphabet”), hclust.method = c(“complete”, “ward”, “single”, “average”, “mcquitty”, “median”, “centroid”), addrect = NULL, rect.col = “black”, rect.lwd = 2, tl.pos = NULL, tl.cex = 1, tl.col = “red”, tl.offset = 0.4, tl.srt = 90, cl.pos = NULL, cl.lim = NULL, cl.length = NULL, cl.cex = 0.8, cl.ratio = 0.15, cl.align.text = “c”,cl.offset = 0.5, addshade = c(“negative”, “positive”, “all”), shade.lwd = 1, shade.col = “white”, p.mat = NULL, sig.level = 0.05, insig = c(“pch”,“p-value”,“blank”, “n”), pch = 4, pch.col = “black”, pch.cex = 3, plotCI = c(“n”,“square”, “circle”, “rect”), lowCI.mat = NULL, uppCI.mat = NULL, …) corr:须要可视化的相关系数矩阵 method:指定可视化的方法,能够是圆形、方形、椭圆形、数值、阴影、颜色或饼图形 type:指定展示的方式,能够是全然的、下三角或上三角 col:指定图形展示的颜色。默认以均匀的颜色展示 bg:指定图的背景色 title:为图形加入标题 is.corr:是否为相关系数画图。默觉得TRUE。相同也能够实现非相关系数的可视化。仅仅需使该參数设为FALSE就可以 diag:是否展示对角线上的结果,默觉得TRUE outline:是否绘制圆形、方形或椭圆形的轮廓,默觉得FALSE mar:详细设置图形的四边间距 addgrid.col:当选择的方法为颜色或阴影时,默认的网格线颜色为白色。否则为灰色 addCoef.col:为相关系数加入颜色。默认不加入相关系数,仅仅有方法为number时,该參数才起作用 addCoefasPercent:为节省画图空间。是否将相关系数转换为百分比格式,默觉得FALSE order:指定相关系数排序的方法。能够是原始顺序(original)、特征向量角序(AOE)、第一主成分顺序(FPC)、层次聚类顺序(hclust)和字母顺序。一般”AOE”排序结果都比”FPC”要好 hclust.method:当order为hclust时。该參数能够是层次聚类中ward法、最大距离法等7种之中的一个 addrect:当order为hclust时。能够为加入相关系数图加入矩形框,默认不加入框,假设想加入框时。仅仅需为该參数指定一个整数就可以 rect.col:指定矩形框的颜色 rect.lwd:指定矩形框的线宽 tl.pos:指定文本标签(变量名称)的位置,当type=full时,默认标签位置在左边和顶部(lt),当type=lower时,默认标签在左边和对角线(ld),当type=upper时,默认标签在顶部和对角线,d表示对角线。n表示不加入文本标签 tl.cex:指定文本标签的大小 tl.col:指定文本标签的颜色 cl.pos:图例(颜色)位置,当type=upper或full时,图例在右表(r),当type=lower时。图例在底部,不须要图例时,仅仅需指定该參数为n addshade:仅仅有当method=shade时,该參数才实用。參数值能够是negtive/positive和all,分表表示对负相关系数、正相关系数和全部相关系数加入阴影。注意:正相关系数的阴影是45度,负相关系数的阴影是135度 shade.lwd:指定阴影的线宽 shade.col:指定阴影线的颜色

    #尽管该函数的參数比較多,但能够组合各种參数,灵活实现各种各样的相关系数图。以下就举几个样例:
    library(corrplot)
    ## Warning: package 'corrplot' was built under R version 3.2.4
    corr <- cor(mtcars[1:7])
    
    #1)參数所有默认情况下的相关系数图
    corrplot(corr=corr)

    #2)指定数值方法的相关系数图
    corrplot(corr=corr, method = "number", col="black", cl.pos="n")

    #3)依照特征向量角序(AOE)排序相关系数图
    corrplot(corr=corr, order="AOE")

    #4)同一时候加入相关系数值
    corrplot(corr=corr, order = "AOE", addCoef.col = "grey")

    #5)选择方法为color
    corrplot(corr=corr, method = "color", order="AOE", addCoef.col = "grey")

    #我认为这幅图比上面的圆形图要清爽非常多
    
    #6)绘制圆形轮廓相关系数图
    corrplot(corr = corr, col = "gray", order = "AOE", outline = T, cl.pos = "n")

    #7)自己定义背景色
    corrplot(corr = corr, col="gray", bg="gold2", order = "AOE", cl.pos = "n")

    #8)混合方法之上三角为圆形,下三角为数字
    corrplot(corr=corr, order="AOE", type="upper", tl.pos = "d")
    corrplot(corr=corr, add=T, type="lower", method = "number", order = "AOE", diag = F, tl.pos = "n", cl.pos = "n")

    #这幅图将颜色、圆的大小和数值型相关系数相结合,更easy发现变量之间的相关性
    
    #混合方法之上三角为圆形。下三角为方形
    corrplot(corr = corr,order="AOE",type="upper",tl.pos="d")
    corrplot(corr = corr,add=TRUE, type="lower", method="square",order="AOE",diag=FALSE,tl.pos="n", cl.pos="n")

    #混合方法之上三角为圆形,下三角为黑色数字
    corrplot(corr = corr,order="AOE",type="upper",tl.pos="tp")
    corrplot(corr = corr,add=TRUE, type="lower", method="number",order="AOE", col="black",diag=FALSE,tl.pos="n", cl.pos="n")

    #个人更倾向于上图的展现形式,既清爽又能非常好的反映变量间的相关系数。
    
    #以层次聚类法排序
    corrplot(corr = corr, order = "hclust")
    
    #以层次聚类法排序,并绘制3个矩形框
    corrplot(corr = corr, order="hclust", addrect = 3, rect.col = "black")

     有关很多其它相关系数图的绘制可參见corrplot()函数的帮助文档。文档中还包含了非常多案例。感兴趣的能够去參考的看看。

    展开全文
  • 在我的上一篇的内容中(R语言绘制热图实践(一)pheatmap包 ),我以绘制相关系数图为出发点,介绍了使用pheatmap包画相关系数图和热图的一些使用。 为了对比,这篇将介绍使用R包corrplot进行相关系数图的一些实践...

    前言

    在我的上一篇的内容中(R语言绘制热图实践(一)pheatmap包 ),我以绘制相关系数图为出发点,介绍了使用pheatmap包画相关系数图和热图的一些使用。
    为了对比,这篇将介绍使用R包corrplot进行相关系数图的一些实践以及corrplot包的一些使用。

    corrplot包简介

    官方文档
    The corrplot package is a graphical display of a correlation matrix, confidence interval. It also contains some algorithms to do matrix reordering. In addition, corrplot is good at details, including choosing color, text labels, color labels, layout, etc.
     
    简单地说,corrplot包主要针对相关系数输出的结果进行可视化,可以实现选择颜色,文本标签,颜色标签,布局等的操作。

    语法和常用参数介绍

    函数语法

    corrplot(corr,
    	method = c("circle", "square", "ellipse", "number", "shade", "color", "pie"),
    	type = c("full", "lower", "upper"), add = FALSE,
    	col = NULL, bg = "white", title = "",  is.corr = TRUE,		
    	diag = TRUE, outline = FALSE, mar = c(0,0,0,0),
    	addgrid.col = NULL, addCoef.col = NULL, addCoefasPercent = FALSE, 
    	order = c("original", "AOE", "FPC", "hclust", "alphabet"),
    	hclust.method = c("complete", "ward", "single", "average",
                          "mcquitty", "median", "centroid"),
    	addrect = NULL, rect.col = "black", rect.lwd = 2,
    	tl.pos = NULL, tl.cex = 1,
    	tl.col = "red", tl.offset = 0.4, tl.srt = 90,
    	cl.pos = NULL, cl.lim = NULL,
    	cl.length = NULL, cl.cex = 0.8, cl.ratio = 0.15, 
    	cl.align.text = "c",cl.offset = 0.5,
    	addshade = c("negative", "positive", "all"),
    	shade.lwd = 1, shade.col = "white",
    	p.mat = NULL, sig.level = 0.05,
    	insig = c("pch","p-value","blank", "n"),
    	pch = 4, pch.col = "black", pch.cex = 3,
    	plotCI = c("n","square", "circle", "rect"),
    	lowCI.mat = NULL, uppCI.mat = NULL, ...)
    

    参数介绍

    这部分的内容参考了参考资料中的第一篇。

    corr:需要可视化的相关系数矩阵

    method:指定可视化的方法,可以是圆形、方形、椭圆形、数值、阴影、颜色或饼图形

    type:指定展示的方式,可以是完全的、下三角或上三角(“full”,“upper"和"lower”)

    col:指定图形展示的颜色,默认以均匀的颜色展示

    bg:指定图的背景色

    title:为图形添加标题

    is.corr:是否为相关系数绘图,默认为TRUE,同样也可以实现非相关系数的可视化,只需使该参数设为FALSE即可

    diag:是否展示对角线上的结果,默认为TRUE

    outline:是否绘制圆形、方形或椭圆形的轮廓,默认为FALSE

    mar:具体设置图形的四边间距

    addgrid.col:当选择的方法为颜色或阴影时,默认的网格线颜色为白色,否则为灰色

    addCoef.col:为相关系数添加颜色,默认不添加相关系数,只有方法为number时,该参数才起作用

    addCoefasPercent:为节省绘图空间,是否将相关系数转换为百分比格式,默认为FALSE

    order:指定相关系数排序的方法,可以是原始顺序(original)、特征向量角序(AOE)、第一主成分顺序(FPC)、层次聚类顺序(hclust)和字母顺序,一般”AOE”排序结果都比”FPC”要好

    hclust.method:当order为hclust时,该参数可以是层次聚类中ward法、最大距离法等7种之一

    addrect:当order为hclust时,可以为添加相关系数图添加矩形框,默认不添加框,如果想添加框时,只需为该参数指定一个整数即可

    rect.col:指定矩形框的颜色

    rect.lwd:指定矩形框的线宽

    tl.pos:指定文本标签(变量名称)的位置,当type=full时,默认标签位置在左边和顶部(lt),当type=lower时,默认标签在左边和对角线(ld),当type=upper时,默认标签在顶部和对角线,d表示对角线,n表示不添加文本标签

    tl.cex:指定文本标签的大小

    tl.col:指定文本标签的颜色

    cl.pos:图例(颜色)位置,当type=upper或full时,图例在右表®,当type=lower时,图例在底部,不需要图例时,只需指定该参数为n

    addshade:只有当method=shade时,该参数才有用,参数值可以是negtive/positive和all,分表表示对负相关系数、正相关系数和所有相关系数添加阴影。注意:正相关系数的阴影是45度,负相关系数的阴影是135度

    shade.lwd:指定阴影的线宽

    shade.col:指定阴影线的颜色

    实践

    实践数据还是使用上一篇中画相关系数的数据。
    (1)准备数据集
    首先还是加载数据集:all_data
    all_data为数据框格式,共包含9696996行,5列(5个样本),如下图所示。
    在这里插入图片描述
    为每列指定列名

    colnames(all_data) <- c( 's1', 's2','s3 ', 's4','s5') 
    

    (2)计算样本间的相关系数

    matrix <- cor (all_data[1:5])
    

    这里我想补充一下cor()函数的用法(这里主要参考了第二篇参考资料)。在R语言中,通常使用cor函数进行相关系数分析,可以分别指定向量,也可以指定给cor函数一个数据框。
    基本语法

    cor(x,y=NULL,use="everything",method= c("pearson","kendall","spearman"))
    

    use 用来指定处理缺失值的方式,可以为"everything", “all.obs”, “complete.obs”, “na.or.complete”, 或者 “pairwise.complete.obs”.
    method 是可选的三种相关系数计算方法,默认情况下使用的是pearson相关系数

    这三种计算相关系数简介:
    pearson相关系数:即皮尔逊相关系数,用于横向两个连续性随机变量间的相关系数。

    spearman相关系数:即斯皮尔曼相关系数,用于衡量分类定序变量间的相关程度。

    kendall相关系数:即肯德尔相关系数,也是一种秩相关系数,不过它所计算的对象是分类变量。

    (3)corrplot包对相关系数输出的结果进行可视化

    #直接画图,不设置其它参数
    corrplot(corr=matrix)
    

    在这里插入图片描述
    控制单元格形状和内容

    # 换用不同method,分别显示数字和颜色(method can be "circle", "square", "ellipse", "number", "shade", "color", "pie")
    # method 默认为“circle”
    corrplot(M, method = "number") 
    corrplot(matrix, method = "color")  
    

    在这里插入图片描述
    在这里插入图片描述
    控制单元格展示的方式以及混合展示

    #指定展示的方式,可以是完全的、下三角或上三角
    corrplot(matrix, type = "upper")
    

    在这里插入图片描述

    # corrplot.mixed()可以混合可视化样式
    #默认上三角为circle,下三角为number,可以修改
    corrplot.mixed(matrix)  
    corrplot.mixed(matrix, lower = "ellipse", upper = "pie")
    

    在这里插入图片描述

    在这里插入图片描述

    corrplot.mixed(matrix, lower = "number", upper = "pie", tl.col = "black",lower.col = "black", number.cex = 1)  
    #tl.col 修改对角线的颜色,lower.col 修改下三角的颜色,number.cex修改下三角字体大小
    

    在这里插入图片描述

    指定order方式

    #指定order按hclust聚类方式排序,addrect是添加分组矩形,可自定义分组类
    corrplot(matrix,order = "hclust",addrect  = 3)
    

    在这里插入图片描述

    #当order = "hclust"时,可使用hclust.method选择层次聚类的方法
    #hclust.method可以为“complete”, “ward”, “single”, “average”, “mcquitty”, “median”, “centroid”
    corrplot(matrix,order = "hclust",addrect  = 3,hclust.method="ward.D2")
    

    在这里插入图片描述

    图例标签控制

    #图例标签控制
    corrplot(matrix, method="number",order = "AOE", cl.pos = "n", tl.pos = "n") 
    #控制对角标签旋转45度
    corrplot(matrix, type = "lower", order = "hclust", tl.col = "black", tl.srt = 45)
    #修改图例范围
    corrplot(matrix,order = "AOE", cl.lim = c(0, 1))
    

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    #改变单元格颜色以及背景颜色bg
    col3 <- colorRampPalette(c("red", "white", "blue"))
    corrplot(matrix, order = "hclust", addrect = 3, col = col3(100), bg = "lightblue")
    

    在这里插入图片描述

    summary

    总结一下,corrplot包使用起来非常简单,也有很多参数可以画出各种花哨的图……甚至可以做显著性检验(我的数据结果都很好,也很少,就没有做)和月亮的阴晴圆缺(具体参见参考资料3和官方文档)。
    但是,最大的缺点: 没办法同时作层次聚类的树图,考虑到这点,我还是喜欢pheatmap多一点,虽然它不是专门画相关系数的图。
    最后,用这个包画一个生物相关论文中常见的相关系数图:

    corrplot(corr=matrix,method = "color",order = "hclust",tl.col="black",addrect=4,addCoef.col = "grey")
    

    在这里插入图片描述
     

    参考资料

    R语言相关系数可视化之corrplot包
    左手用R右手Python系列11——相关性分析
    R画月亮阴晴圆缺:corrplot绘图相关系数矩阵

    展开全文
  • R语言heatmap相关系数图 library(ggplot2) library(tidyverse) data(mtcars) #加载data数据 df <- cor(mtcars) //正方形相关系数图 //使用mutate创建一个变量名为row1、取值为行名的列 //pivot_longer将数据框...

    R语言heatmap相关系数图

    在这里插入图片描述
    在这里插入图片描述

    library(ggplot2)
    library(tidyverse)
    data(mtcars) #加载data数据
    df <- cor(mtcars)
    //正方形相关系数图
    //使用mutate创建一个变量名为row1、取值为行名的列
    //pivot_longer将数据框由宽变长,指定变长的变量-var1即除了var1都变长),变长后的变量命名总体的名字(names_to),取值(values_to,按照cor进行索引取值)
    df <- df %>% as.data.frame() %>% mutate(var1=row.names(df)) %>% pivot_longer(-var1,names_to = "var2",values_to = "cor")
    //变换后的数据展示
    # A tibble: 121 x 3
    #var1  var2     cor
    #<chr> <chr>  <dbl>
    #  1 mpg   mpg    1    
    #2 mpg   cyl   -0.852
    #3 mpg   disp  -0.848
    #4 mpg   hp    -0.776
    #5 mpg   drat   0.681
    #6 mpg   wt    -0.868
    #7 mpg   qsec   0.419
    #8 mpg   vs     0.664
    #9 mpg   am     0.600
    #10 mpg   gear   0.480
    # ... with 111 more rows
    
    #下面factor可以将出现的顺序变为自己想要
    df$var1 <- factor(df$var1,levels = c('carb','gear','am','vs','qsec','wt','drat','hp','disp','cyl','mpg'))
    #改变排序顺序的几种方法
    order <- c('mpg','disp','cyl','wt','drat','hp','qsec','carb','vs','gear','am')
    order2 <- rev(order)
    order3 <- sort(order)
    order4 <- sort(order,decreasing = TRUE)
    #使用循环进行排序
    size=length(df)
    size=nrow(df)
    a=c(rep(0,size))
    for (i in 1:size){
      a[i]=order[12-i]
    }
    df$var2 <- factor(df$var2,levels=rev(c('carb','gear','am','vs','qsec','wt','drat','hp','disp','cyl','mpg')))
    #保留两位小数
    df$cor <- round(df$cor,2)
    #保存文件的路径
    file("xxxxx.pdf")
    ggplot(df,aes(var1,var2))+
      geom_tile(aes(fill=cor),color='white')
    ggplot(df,aes(var1,var2))+
      geom_tile(aes(fill=cor),color='white')+
      scale_fill_gradient2(low='blue',high = 'red',mid = 'white',
                           midpoint = 0,limit=c(-1,1),space = "Lab",name="Pearson\nCorrelaton")+
      labs(x = NULL, y = NULL)+
      theme(axis.text.x = element_text(angle = 45, vjust = 1,  size = 12, hjust = 1))+
      geom_text(aes(label=cor))+
      theme(panel.background = element_blank(),
            axis.ticks = element_blank())
    dev.off
    #得到下三角的相关系数
    #得到上三角的索引、并赋予NA
    data(mtcars) 
    df <- cor(mtcars)
    upper.tri(df)
    df[upper.tri(df)] <- NA
    df <- as.data.frame(df)
    #添加新的列,使用“变长“功能变长并且多出一个列,适应画图
    df <- mutate(df,var1=rownames(df))
    df <- pivot_longer(df,-var1,names_to = 'var2',values_to = 'cor',values_drop_na=TRUE)
    #矩形展示,只需要考虑变量顺序
    #考虑三角形显示,需要考虑var1、var2的坐标位置以及每个变量下包含值得个数
    #变量数量较少使用手动数格子、第一步任意画图、选定一个坐标,看每个变量纵坐标方向有多少个方格,若想得到下三角,一个变量位置应该是方格最多,然后依次递减
    #变量较多时,对某个坐标轴方向(某个变量var1)进行重复数据计数、得出数量从多到少的排序,下面level里是已排
    df$var1 <- factor(df$var1,levels = c('carb','gear','am','vs','qsec','wt','drat','hp','disp','cyl','mpg'))
    #rev后是下左三角、不使用rev是左上三角
    df$var2 <- factor(df$var2,levels=rev(c('carb','gear','am','vs','qsec','wt','drat','hp','disp','cyl','mpg')))
    #保留两位小数
    df$cor <- round(df$cor,2)
    #保存文件的路径
    file("xxxxx.pdf")
    ggplot(df,aes(var1,var2))+
      geom_tile(aes(fill=cor),color='white')
    ggplot(df,aes(var1,var2))+
      geom_tile(aes(fill=cor),color='white')+
      scale_fill_gradient2(low='blue',high = 'red',mid = 'white',
                           midpoint = 0,limit=c(-1,1),space = "Lab",name="Pearson\nCorrelaton")+
      labs(x = NULL, y = NULL)+
      theme(axis.text.x = element_text(angle = 45, vjust = 1,  size = 12, hjust = 1))+
      geom_text(aes(label=cor))+
      theme(panel.background = element_blank(),
            axis.ticks = element_blank())
    dev.off
    
    
    展开全文
  • nc 归一化相关系数 图像对比 图像相似 matlab
  • 相关系数图junjun2016年4月6日参考:刘顺祥作品虽然cor()函数可以非常方便快捷的计算出连续变量之间的相关系数,但当变量非常多时,返回的相关系数一定时读者看的眼花缭乱。下面就以R自带的mtcars数据集为例,讲讲...

    相关系数图

    junjun

    2016年4月6日

    参考:刘顺祥作品

    虽然cor()函数可以非常方便快捷的计算出连续变量之间的相关系数,但当变量非常多时,返回的相关系数一定时读者看的眼花缭乱。

    下面就以R自带的mtcars数据集为例,讲讲相关系数图的绘制:

    cor(mtcars[1:7])

    ## mpg cyl disp hp drat wt

    ## mpg 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.68117191 -0.8676594

    ## cyl -0.8521620 1.0000000 0.9020329 0.8324475 -0.69993811 0.7824958

    ## disp -0.8475514 0.9020329 1.0000000 0.7909486 -0.71021393 0.8879799

    ## hp -0.7761684 0.8324475 0.7909486 1.0000000 -0.44875912 0.6587479

    ## drat 0.6811719 -0.6999381 -0.7102139 -0.4487591 1.00000000 -0.7124406

    ## wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.71244065 1.0000000

    ## qsec 0.4186840 -0.5912421 -0.4336979 -0.7082234 0.09120476 -0.1747159

    ## qsec

    ## mpg 0.41868403

    ## cyl -0.59124207

    ## disp -0.43369788

    ## hp -0.70822339

    ## drat 0.09120476

    ## wt -0.17471588

    ## qsec 1.00000000

    很显然,这么多数字堆在一起肯定很难快速的发现变量之间的相关性大小,如果可以将相关系数可视化,就能弥补一大堆数字的缺陷了。这里介绍corrplot包中的corrplot()函数进行相关系数的可视化,首先来看看该函数的语法和一些重要参数: corrplot(corr, method = c(“circle”, “square”, “ellipse”, “number”, “shade”, “color”, “pie”), type = c(“full”, “lower”, “upper”), add = FALSE, col = NULL, bg = “white”, title = “”, is.corr = TRUE, diag = TRUE, outline = FALSE, mar = c(0,0,0,0), addgrid.col = NULL, addCoef.col = NULL, addCoefasPercent = FALSE, order = c(“original”, “AOE”, “FPC”, “hclust”, “alphabet”), hclust.method = c(“complete”, “ward”, “single”, “average”, “mcquitty”, “median”, “centroid”), addrect = NULL, rect.col = “black”, rect.lwd = 2, tl.pos = NULL, tl.cex = 1, tl.col = “red”, tl.offset = 0.4, tl.srt = 90, cl.pos = NULL, cl.lim = NULL, cl.length = NULL, cl.cex = 0.8, cl.ratio = 0.15, cl.align.text = “c”,cl.offset = 0.5, addshade = c(“negative”, “positive”, “all”), shade.lwd = 1, shade.col = “white”, p.mat = NULL, sig.level = 0.05, insig = c(“pch”,“p-value”,“blank”, “n”), pch = 4, pch.col = “black”, pch.cex = 3, plotCI = c(“n”,“square”, “circle”, “rect”), lowCI.mat = NULL, uppCI.mat = NULL, …) corr:需要可视化的相关系数矩阵 method:指定可视化的方法,可以是圆形、方形、椭圆形、数值、阴影、颜色或饼图形 type:指定展示的方式,可以是完全的、下三角或上三角 col:指定图形展示的颜色,默认以均匀的颜色展示 bg:指定图的背景色 title:为图形添加标题 is.corr:是否为相关系数绘图,默认为TRUE,同样也可以实现非相关系数的可视化,只需使该参数设为FALSE即可 diag:是否展示对角线上的结果,默认为TRUE outline:是否绘制圆形、方形或椭圆形的轮廓,默认为FALSE mar:具体设置图形的四边间距 addgrid.col:当选择的方法为颜色或阴影时,默认的网格线颜色为白色,否则为灰色 addCoef.col:为相关系数添加颜色,默认不添加相关系数,只有方法为number时,该参数才起作用 addCoefasPercent:为节省绘图空间,是否将相关系数转换为百分比格式,默认为FALSE order:指定相关系数排序的方法,可以是原始顺序(original)、特征向量角序(AOE)、第一主成分顺序(FPC)、层次聚类顺序(hclust)和字母顺序,一般”AOE”排序结果都比”FPC”要好 hclust.method:当order为hclust时,该参数可以是层次聚类中ward法、最大距离法等7种之一 addrect:当order为hclust时,可以为添加相关系数图添加矩形框,默认不添加框,如果想添加框时,只需为该参数指定一个整数即可 rect.col:指定矩形框的颜色 rect.lwd:指定矩形框的线宽 tl.pos:指定文本标签(变量名称)的位置,当type=full时,默认标签位置在左边和顶部(lt),当type=lower时,默认标签在左边和对角线(ld),当type=upper时,默认标签在顶部和对角线,d表示对角线,n表示不添加文本标签 tl.cex:指定文本标签的大小 tl.col:指定文本标签的颜色 cl.pos:图例(颜色)位置,当type=upper或full时,图例在右表(r),当type=lower时,图例在底部,不需要图例时,只需指定该参数为n addshade:只有当method=shade时,该参数才有用,参数值可以是negtive/positive和all,分表表示对负相关系数、正相关系数和所有相关系数添加阴影。注意:正相关系数的阴影是45度,负相关系数的阴影是135度 shade.lwd:指定阴影的线宽 shade.col:指定阴影线的颜色

    #虽然该函数的参数比较多,但可以组合各种参数,灵活实现各种各样的相关系数图。下面就举几个例子:

    library(corrplot)

    ## Warning: package 'corrplot' was built under R version 3.2.4

    corr

    #1)参数全部默认情况下的相关系数图

    corrplot(corr=corr)

    5028408.htm

    #2)指定数值方法的相关系数图

    corrplot(corr=corr, method = "number", col="black", cl.pos="n")

    5028408.htm

    #3)按照特征向量角序(AOE)排序相关系数图

    corrplot(corr=corr, order="AOE")

    5028408.htm

    #4)同时添加相关系数值

    corrplot(corr=corr, order = "AOE", addCoef.col = "grey")

    5028408.htm

    #5)选择方法为color

    corrplot(corr=corr, method = "color", order="AOE", addCoef.col = "grey")

    5028408.htm

    #我觉得这幅图比上面的圆形图要清爽很多

    #6)绘制圆形轮廓相关系数图

    corrplot(corr = corr, col = "gray", order = "AOE", outline = T, cl.pos = "n")

    5028408.htm

    #7)自定义背景色

    corrplot(corr = corr, col="gray", bg="gold2", order = "AOE", cl.pos = "n")

    5028408.htm

    #8)混合方法之上三角为圆形,下三角为数字

    corrplot(corr=corr, order="AOE", type="upper", tl.pos = "d")

    corrplot(corr=corr, add=T, type="lower", method = "number", order = "AOE", diag = F, tl.pos = "n", cl.pos = "n")

    5028408.htm

    #这幅图将颜色、圆的大小和数值型相关系数相结合,更容易发现变量之间的相关性

    #混合方法之上三角为圆形,下三角为方形

    corrplot(corr = corr,order="AOE",type="upper",tl.pos="d")

    corrplot(corr = corr,add=TRUE, type="lower", method="square",order="AOE",diag=FALSE,tl.pos="n", cl.pos="n")

    5028408.htm

    #混合方法之上三角为圆形,下三角为黑色数字

    corrplot(corr = corr,order="AOE",type="upper",tl.pos="tp")

    corrplot(corr = corr,add=TRUE, type="lower", method="number",order="AOE", col="black",diag=FALSE,tl.pos="n", cl.pos="n")

    5028408.htm

    #个人更倾向于上图的展现形式,既清爽又能很好的反映变量间的相关系数。

    #以层次聚类法排序

    corrplot(corr = corr, order = "hclust")

    #以层次聚类法排序,并绘制3个矩形框

    corrplot(corr = corr, order="hclust", addrect = 3, rect.col = "black")

    5028408.htm 有关更多相关系数图的绘制可参见corrplot()函数的帮助文档,文档中还包括了很多案例,感兴趣的可以去参考的看看。

    展开全文
  • 之前ggplot2系列中我们已经学会了常用的统计图形,如条形图、直方图、散点图、折线图、饼图和地图等,今天再和大家谈谈R语言中常用的其他图形,如相关系数图。 虽然cor()函数可以非常方便快捷的计算出连续变量...
  • 下面就以R自带的mtcars数据集为例,讲讲相关系数图的绘制:cor(mtcars[1:7])很显然,这么多数字堆在一起肯定很难快速的发现变量之间的相关性大小,如果可以将相关系数可视化,就能弥补一大堆数字的缺陷了。...
  • 热力图,又名相关系数图。根据热力图中不同方块颜色对应的相关系数的大小,可以判断出变量之间相关性的大小。两个变量之间相关系数的计算公式为: ρX1X2=Cov(X1,X2)DX1,DX2=EX1X2−EX1∗EX2DX1∗DX2\rho _{_{X_{1}X_...
  • 牛气的相关系数图

    2021-01-21 14:07:37
    在实际数据分析过程中,两个变量的线性相关程度高低我们一般用“相关系数(r)”表示,取值范围为[-1,1], “(0,1]”为正相关,“[-1,0)”为负相关,“0”表示线性不相关。当需要比较多个变量之间的相关性时,仅看...
  • R做相关系数图

    千次阅读 2017-11-02 16:16:48
    Function ...以椭圆代表相关系数。 plotcov pcaPP 用于两个相关系数矩阵的比较。 corrplot corrplot 相关系数矩阵可视化专业户,推荐。 corrplot arm 可被ggcorr
  • 相关系数图 library(vegan) library(dplyr) library(corrplot) par(omi = c(0.3, 0.3, 0.3, 0.3), cex = 1.2, family = ‘Times New Roman’) # windows系统可能需要安装其他字体包 M <- cor(decostand(mtcars,...
  • 之前提问过一个问题...老板又嫌弃画的不好看。头大。。。自己挖的坑只能自己填。最近又改进了下,还是蛮有意思的。blingbling~from itertools import product import matplotlib.gridspec as gridspe...
  • 利用corrgram包中的corrgram()函数,可以用图形的方式展示相关系数矩阵 代码示例 options(digits=2) cor(mtcars) install.packages("corrgram") library(corrgram) corrgram(mtcars,order=TRUE,lower.panel = panel....
  • 第一张,大家应该很熟悉,是11个变量两两之间的简单相关系数。这么多数字堆在一起,很难快速的发现变量之间的相关性,根本不想看第二眼,有没有?!大家再来看第二张,是不是会好很多。除了颜值,咱们还得看看它究竟能...
  • ##corrplot相关系数图 corrplot() cor_data (read_excel("cor_data.xlsx")) rownames(cor_data)$..1 cor_data[,-c(1)] cor_data (cor_data) heatmap.2(cor_data,col = bluered(100),colsep= c(1:6),Rowv ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,065
精华内容 826
关键字:

相关系数图