在qgraph中使用不同的边线类型

在qgraph中使用不同的边线类型

问题描述:

我使用qgraph包来绘制相关网络,其中显示正值和负值。由于日记限制,我需要一个灰度图,因此节点的颜色可以很容易地设置,但是我在边缘方面有困难。我想为正数("solid")和负数("dashed")之间的相关性设置不同的线型,因此我们不需要节点和边缘的灰色代码。 'qgraph`中的参数lty只允许一种类型的线条用于整个情节,我怎样才能使它工作?在qgraph中使用不同的边线类型

这里是一个临时的解决方案

qgraph(polys$rho, groups = structure_hscl, 
     color= c("white","gray","gray25"), 
     borders=TRUE, trans=FALSE, details=TRUE, 
     bonf=TRUE, alpha=.05, 
     normalize =TRUE, vsize=3, 
     threshold= .2, labels=labels_hscl, 
     layout="spring", graph="pcor", 
     lty = c("solid","dashed") # this obviously doesn't work) 

非常感谢事先!

似乎lty需要是合适值的载体。那么我们如何知道哪些边缘应该是虚线以及哪个实体?我将演示一种使用psych包中的数据完成工作的方法。

library(psych) 
library(qgraph) 
data(bfi) 

persvars <- bfi[,1:25] 

让我们再创建一个临时图形,并推断得出哪条线路基础上,颜色为虚线:

hackgraph <- qgraph(cor(persvars,use = "pa"), fade = FALSE, layout = "spring", graph = "pcor") 

edgecolor <- hackgraph$graphAttributes$Edges$color 
unique(hackgraph$graphAttributes$Edges$color) 

设置fade = FALSE上述对比颜色与管理的数字:现在我们知道,积极的边缘是“#009900”或“深绿色”。所以我们需要做的是形成一个新的向量为:

linetype <- ifelse((edgecolor == "#009900" | edgecolor =="darkgreen"), 1, 2) 

我们可以根据这些线路类型,然后绘制所需图形:

qgraph(cor(persvars,use = "pa"), layout = "spring", graph = "pcor", lty = linetype) 

Graph with negative edges as dashed lines