3

我正在使用 R 进行社交网络分析,尝试使用 SNA、Network 和 iGraph 包。

我的数据是一个data.frame,结构为......d <-

Source  Target  Weight  Label
1       2       0.5     "Fred"
1       3       0.7     "Fred"
2       3       0.9     "Bill"
3       1       1.0     "Allen"

(我还有一个版本,它只是(a)源、目标和权重,以及一个单独的文件(b)提供源 ID 和标签值之间的对应关系,即源的名称,其中a <-

Source  Target  Weight
1       2       0.5   
1       3       0.7   
2       3       0.9   
3       1       1.0   

labels1 <-

Source  Label
1       "Fred"
2       "Bill"
3       "Allen"

labels2 <-

Source  Label
1       "TrueName1"
2       "TrueName2"
3       "TrueName3"

)

我正在使用匿名社交网络,因此我希望能够在重新绘制之间轻松更改名称标签——即使用标签集 1 或标签集 2,其中边缘相同,但节点名称sourceID 和 Label Name 变化的对应关系。

但是,当尝试使用这些包中的任何一个时,似乎我必须将源和目标中的值转换为等于标签。是否有任何简单的方法可以将标签附加为与源的对应关系?

只要我有标签列,类似的东西network(d)graph.data.frame(d, directed=TRUE)不会起作用。一旦我放弃这个类别,它就会,但我的图表有数字标签。

我想做的是这样的:

plot(a, labels=NA) 
plot(a, labels=labels1) 

plot(a, labels=labels2) 

在图形上的数字、匿名和非匿名标签之间移动。

4

1 回答 1

0

对于 igraph 尝试 plot(a, vertex.label=NA)。

http://igraph.sourceforge.net/doc/R/plot.common.html或 ?igraph.plotting 对绘图有更多帮助。

于 2012-03-12T10:22:46.523 回答