我使用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 )
事先非常感谢!
答案 0 :(得分:0)
似乎lty需要是合适值的 vector 。那么我们如何知道哪些边应该是虚线以及哪些是实心的?我将演示一种使用mental包中的 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
会将颜色减少到可管理的数字:现在我们知道正边缘是&#34;#009900&#34;或者&#34; darkgreen&#34;彩色。所以我们需要做的就是形成一个新的向量:
linetype <- ifelse( (edgecolor == "#009900" | edgecolor =="darkgreen"), 1, 2)
然后我们可以根据这些线型绘制所需的图形:
qgraph(cor(persvars,use = "pa"), layout = "spring", graph = "pcor", lty = linetype)