如何在R中生成我的data.frame的相关图?

时间:2015-08-12 14:24:31

标签: r plot correlation pearson

这可能是一个简单的问题。 我有一个df,我想为R中的数据生成一个相关图。

head(df)

            x  y
1 -0.10967469  1
2  1.06814661 93
3  0.71805993 46
4  0.60566332 84
5  0.73714006 12
6 -0.06029712  5

我找到了一个名为 corPlot 的软件包,我根据pearson& amp;生成了两个图表。 spearman方法。

corPlot(df, method = 'pearson')
corPlot(df, method = 'spearman')

这是我的输出与pearson方法:

enter image description here

我想知道是否有另一个包来生成我不知道的相同的相关图?

提前致谢,

4 个答案:

答案 0 :(得分:0)

尝试使用corrplot库,以下是此link

的示例
library(corrplot)
M <- cor(mtcars)
corrplot(M, method = "circle")

答案 1 :(得分:0)

您应该查看 ?pairs 。对于变量组合进行散点图非常有用,但改变

上显示的图形类型
  1. 下三角(传递函数将2个变量转换为lower.panel参数)
    • 例如,pairs(df, lower.panel=points表示散点图
  2. 对角线(将1变量传递给diag.paneltext.panel参数的函数
    • 这很棘手!请参阅帮助文件以了解如何进行直方图
  3. 上三角(传递函数将2个变量转换为upper.panel参数)
    • 例如,pairs(df, upper.panel=function(x,y)text(0,0,cor(x,y))),但见下文
  4. 分散图和相关性,来自帮助文件(?pairs):

    panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor, ...)
    {
        usr <- par("usr"); on.exit(par(usr))
        par(usr = c(0, 1, 0, 1))
        r <- abs(cor(x, y))
        txt <- format(c(r, 0.123456789), digits = digits)[1]
        txt <- paste0(prefix, txt)
        if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
        text(0.5, 0.5, txt, cex = cex.cor * r)
    }
    pairs(USJudgeRatings, lower.panel = panel.smooth, upper.panel = panel.cor)
    

    根据您的数据,执行以下操作:

    pairs(df, lower.panel=plot, upper.panel=panel.cor)
    

    我喜欢这个功能,并按原样使用它。只有xy,但

    可能看起来有些奇怪

答案 2 :(得分:0)

  

尝试corrlY软件包

您可以使用数据框绘制相关矩阵。另外,您可以使用多种方法找到相关性。

请参阅示例-

  

使用corrlY包进行关联的方法

安装Corrly

# install.packages("devtools")
devtools::install_github("maheshKulkarniX/corrlY")
library(plotly)
library(corrlY)

使用Kendall方法的相关系数

# Example: 
corr_coef_kendall(variable1= mtcars$cyl, variable2=mtcars$carb, decimal = 2) 
## [1] 0.47

使用皮尔逊法的相关系数

 # Example: 
    corr_coef_pearson(variable1= mtcars$disp, variable2=mtcars$hp, decimal = 2)
    ## [1] 0.79

使用Spearman方法的相关系数

# Example:
corr_coef_spearman(variable1= cars$speed, variable2=cars$dist, decimal = 2)
## [1] 0.83
  

使用corrlY的相关矩阵图

matrixly(data = mtcars)

enter image description here

  

使用corrlY的相关图

x <- c(0.10967469, 1.06814661, 0.71805993, 0.60566332, 0.73714006, -0.06029712)
y <- c(1, 93, 46, 84, 12, 5)
xy <- data.frame(x, y)
spearman<- corr_coef_spearman(variable1= xy$x, variable2=xy$y, decimal = 2)
corr_scatterly(data=xy,x= xy$x, y= xy$y,corr_coef=spearman, xname="x", yname="y")

Correlation Scatter Plot

  

有关更多信息,请访问GitHub存储库   Data Visualization Package For All Types of Correlation Charts using Plotly Package.

     

有关更多示例,请访问corrlY软件包站点corrlY package site

答案 3 :(得分:0)

还有另一个库Corrplot

library(corrplot)
cor.table = cor(df)
corrplot(cor.table)

enter image description here