使用多个变量/参数可视化R中的“ Corrplot”

问题描述

我正在使用corrplot的{​​{1}}包中的corrplot函数来可视化我拥有的数据通道之间的相关性。我的问题是我是否可以为圆分配两个“因数”或参数...例如,是否可以让圆的大小代表相关性,而圆的颜色代表其他事物,例如滞后?我的数据实际上是互相关数据,在该数据中,我已经确定了最大的相关性/滞后性,并且希望能够在图形中将两者可视化,这就是为什么要这样做。

基本上,我要达到的目的与以下问题相同:R: using corrplot to visualize two variables (e.g.,correlation and p-value) using the size and colour of the circles,但是,这两种解决方案都不适合我,从Github安装软件包时出现错误

我有一个滞后和相关向量:

R

假设我想使用CCO_lag = (0,NaN,-2,-5,-4,-6,-3,1,3,NaN) CCO_r = c(-0.4757,0.5679,0.5582,0.5899,0.5857,0.6256,-0.4646,-0.6286,-0.4699,-0.7710,0.5869,NaN `) 1x16正方形中可视化该图形,我希望圆的大小取决于corrplot中的相关值,而圆的颜色取决于CCO_r中的滞后值。

有人可以帮忙吗?

谢谢!

解决方法

在我看来,这似乎不像是一个相关图,但是我们可以这样做:

CCO_lag = c(0,NaN,-2,-5,-4,-6,-3,1,3,NaN) 
CCO_r = c(-0.4757,0.5679,0.5582,0.5899,0.5857,0.6256,-0.4646,-0.6286,-0.4699,-0.7710,0.5869,NaN )

d = data.frame(id = 1:length(CCO_lag),CCO_lag,CCO_r)

ggplot(d,aes(x = id,y = "A",size = CCO_r,color = CCO_lag)) +
  geom_point() +
  scale_y_discrete(breaks = NULL) +
  labs(y = "",x = "")

enter image description here

如果您有矩阵:

lag_mat = matrix(CCO_lag,4)
r_mat = matrix(CCO_r,4)
row = c(row(lag_mat))
col = c(col(lag_mat))

dd = data.frame(
  lag = c(lag_mat),r = c(r_mat),row,col
)

ggplot(dd,aes(x = row,y = col,size = r,color = lag)) +
  geom_point() +
  theme(panel.grid = element_blank())

enter image description here

请注意,矩阵的顶部为第1行,下方为编号较高的行,而图的y值较低的底部,而y的编号较高。您可能要更改它,否则可能会好起来。您可以将scale_y_reverse()添加到绘图中以进行切换。