用ggplot2绘制相关矩阵图

我想要创建一个相关矩阵图,即每个变量都绘制在散点图中,并与pairs()splom()等其他变量一起绘制。 我想用ggplot2来做到这一点。 请看这里的例子。 该链接提到了某人在ggplot2中为此编写的代码,但是,该代码已过时并且不再有效(甚至在您更换弃用的部分之后)。

人们可以在一个循环中进行循环,然后使用multiplot() ,但必须有更好的方法。 我尝试将数据集融化为长,然后复制值和变量变量,然后使用构面。 这几乎给你正确的东西。

d = data.frame(x1=rnorm(100),
               x2=rnorm(100),
               x3=rnorm(100),
               x4=rnorm(100),
               x5=rnorm(100))
library(reshape2)
d = melt(d)
d$value2 = d$value
d$variable2 = d$variable

library(ggplot2)
ggplot(data=d, aes(x=value, y=value2)) +
  geom_point() +
  facet_grid(variable ~ variable2)

这得到了一般结构的权利,但只适用于绘制每个变量对自己。 没有诉诸2个循环,有没有更聪明的方法呢?


library(GGally)

set.seed(42)
d = data.frame(x1=rnorm(100),
               x2=rnorm(100),
               x3=rnorm(100),
               x4=rnorm(100),
               x5=rnorm(100))

# estimated density in diagonal
ggpairs(d)

在这里输入图像描述

# blank
ggpairs(d, diag = list("continuous"="blank")

在这里输入图像描述


使用PerformanceAnalytics库:

library("PerformanceAnalytics")
chart.Correlation(df, histogram = T, pch= 19)

在这里输入图像描述

链接地址: http://www.djcxy.com/p/30909.html

上一篇: Correlation matrix plot with ggplot2

下一篇: Create a matrix of scatterplots (pairs() equivalent) in ggplot2