Это поможет сделать что-то более представительное:
library(ggplot2)
set.seed(69)
df <- data.frame(a = 1:10, b = 1/33 * 1:10 + rnorm(10), c = -(1:10) * 0.1 + rnorm(10),
d = 1/5 * 1:10 + rnorm(10), e = rnorm(10))
cormat <- cor(df)
Теперь в вашем примере, поскольку cormat
- это 500 квадратов, c(cormat[1:500,])
совпадает с c(cormat[,1:500])
, которые оба являются то же, что и c(cormat)
, то есть просто cormat
, развернутый в вектор длиной 250000. Ваш график на самом деле просто график плотности всех значений корреляции. Я не уверен, насколько это полезно:
ggplot() + geom_violin(aes(c(cormat), c(cormat)))
You could instead do a plot of all the correlations separately as violin plots:
plot_df <- reshape2::melt(cormat)
ggplot(data = plot_df) + geom_violin(aes(Var1, value, fill = Var1))
but this won't work well for 500 variables.
A more standard way to represent a correlation matrix this big would be as a correlation plot, like:
ggplot(plot_df) + geom_tile(aes(Var1, Var2, fill = value))
Created on 2020-07-12 by the пакет (v0.3.0)