问题描述
我正在使用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 = "")
如果您有矩阵:
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())
请注意,矩阵的顶部为第1行,下方为编号较高的行,而图的y值较低的底部,而y的编号较高。您可能要更改它,否则可能会好起来。您可以将scale_y_reverse()
添加到绘图中以进行切换。