2017-11-18 291 views
0

我想在R中画出下面的图片。我绘制它,但是我想根据它们的值来加权边缘大小,使用这两种不同的颜色(红色和蓝色)以及两种不同的边缘类型(虚线而不是虚线)。我该怎么做呢?如何将以下图片制作为R(qgraph或igraph)中的网络?

network drawing

下面是数据帧

data.frame(Node = c("MF", "MF", "SF","SF", "AFS","AFS"), Edge.col= c(rep(c("Blue","Red"),3)), RC = c(215, 79, 38, 22, 659, 43), SER = c(285, 43, 120, 44, 252, 95)) 
+0

编辑您的问题与您用来建立图形的数据。用这个在SO上发布问题:[MVCE](https://stackoverflow.com/help/mcve) – skrubber

+0

好的。现在我添加了data.frame函数与数据集 –

回答

0

我终于设法使画面的代码。我无法在R中完成,但我使用了graphviz软件。下面我显示的代码:

digraph g { 
layout = "neato" 

MF -> SER [color=blue, penwidth=3.24, label = "285"]; 
MF -> SER [color=red, penwidth=0.49, label = "43"]; 
MF -> RC [style=dashed, color=blue, penwidth=2.44, label = "215"]; 
MF -> RC [style=dashed, color=red, penwidth=0.9, label = "79"]; 
SF -> SER [color=blue, penwidth=1.36, label = "120"]; 
SF -> SER [color=red, penwidth=0.5, label = "44"]; 
SF -> RC [style=dashed, color=blue, penwidth=0.43, label = "38"]; 
SF -> RC [style=dashed, color=red, penwidth=0.25, label = "22"]; 
AFS -> SER [color=blue, penwidth=2.86, label = "252"]; 
AFS -> SER [color=red, penwidth=1.08, label = "95"]; 
AFS -> RC [style=dashed, color=blue, penwidth=7.5, label = "659"]; 
AFS -> RC [style=dashed, color=red, penwidth=0.49, label = "43"]; 

MF[pos="0,2!", height = 1, width = 1.5, fontsize = 28, fontname = "Helvetica"] 
SF [pos="-2,-2!", height = 1, width = 1.5, fontsize = 28, fontname = "Helvetica"] 
AFS [pos="2,-2!", height = 1, width = 1.5, fontsize = 28, fontname = "Helvetica"] 
RC [pos="1,0!", label = "BB",shape=Mdiamond, height = 1, width = 1.5, fontsize = 28, fontname = "Helvetica"]; 
SER [pos="-1,0!", label = "P-S", shape=Msquare, height = 1, width = 1, fontsize = 28, fontname = "Helvetica"]; 
}