Frage Korrelationsmatrixdiagramm mit ggplot2


Ich möchte ein Korrelationsmatrixdiagramm erstellen, d. H. Ein Diagramm, bei dem jede Variable in einem Streudiagramm gegen jede andere Variable wie mit aufgetragen ist pairs() oder splom(). Ich möchte das mit ggplot2 machen. Siehe hier für Beispiele. Der Link erwähnt einen Code, den jemand in ggplot2 geschrieben hat, aber er ist veraltet und funktioniert nicht mehr (selbst nachdem Sie die veralteten Teile ausgetauscht haben).

Man könnte dies mit einer Schleife in einer Schleife tun und dann multiplot()Aber es muss einen besseren Weg geben. Ich habe versucht, den Datensatz zu lange zu schmelzen und den Wert und die Variablen zu kopieren und dann Facetten zu verwenden. Das gibt dir fast etwas richtiges.

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)

enter image description here

Dies erhält die allgemeine Struktur richtig, aber funktioniert nur für das Plotten jeder Variablen gegen sich selbst. Gibt es einen clevereren Weg dies zu tun, ohne auf zwei Schleifen zurückgreifen zu müssen?


5
2018-04-17 10:42


Ursprung


Antworten:


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)

enter image description here

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

enter image description here


14
2018-04-17 10:47



Verwenden der PerformanceAnalytics-Bibliothek:

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

enter image description here


1
2018-04-24 10:00