【问题标题】:Using different edge line types in qgraph在 qgraph 中使用不同的边缘线类型
【发布时间】:2016-04-22 08:45:59
【问题描述】:

我正在使用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 )

非常感谢!

【问题讨论】:

    标签: par r-qgraph


    【解决方案1】:

    似乎 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) 
    

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多