0

我正在使用qgraph包来绘制相关网络,它显示正值和负值。由于日记的限制,我需要一个灰度图,因此可以轻松设置节点的颜色,但我在处理边缘时遇到了困难。我想为正 ( "solid") 和负 ( "dashed") 相关设置不同的线型,因此我们不需要节点和边的格雷码。'qgraph'中的参数lty只允许整个情节使用一种类型的线,我怎样才能让它工作?

这是一个暂定的解决方案

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 )

提前非常感谢!

4

1 回答 1

0

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

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) 

以虚线表示负边的图形

于 2016-12-31T02:59:36.260 回答