【发布时间】:2017-11-24 09:31:04
【问题描述】:
我正在使用无向图。我正在寻找绘制图表,并为满足某些标准的节点着色。
我有一个包含好坏边缘的数据框。好的边缘我设置列color = darkgrey,坏边缘color = red
我的边缘列表看起来像:
from to color
1 54770 54771 darkgrey
2 54770 54775 darkgrey
3 54770 54776 darkgrey
4 54770 54774 darkgrey
5 54771 54775 darkgrey
6 54771 54776 darkgrey
7 54771 54774 red
8 54775 54776 darkgrey
9 54775 54774 darkgrey
10 54776 54774 darkgrey
11 110780 110781 red
(为此,我在 dob_diff 列上运行以下行):
df$color <- with(df, ifelse(dob_diff <= 168), "red", "darkgrey"))
我可以绘制图表:
g = graph.data.frame(df, directed=FALSE)
plot(graph)
我可以通过以下方式返回那些坏边的索引列表:
a <- which(df$colour == "red")
> a
[1] 7 11
如何获取这些边缘,然后为连接到坏边缘的节点着色?
这个问题here表示您可以通过编号访问节点颜色
V(g)$color[6] <- "red"
如何告诉 igraph 获取边列表?
编辑:例如:
我可以返回不正确的节点列表:
> from <- cluster_data_updated_illegal_combined[c("from")][cluster_data_updated_illegal_combined$illegal_dob == 1,]
> to <- cluster_data_updated_illegal_combined[c("to")][cluster_data_updated_illegal_combined$illegal_dob == 1,]
> from
[1] "54771" "110780" "20285" "83962" "88825" "19695" "33343" "89446" "90175" "98032" "115768"
[12] "1982" "71327" "75017" "75018" "89315" "89316" "106277" "106956" "111140" "32841" "72276"
[23] "111062" "111074" "1904" "12148" "17325" "17412" "18238" "18368" "19681" "28041" "30755"
[34] "31915" "32825" "43791" "54806" "54808" "87075" "94814" "97877" "101124" "102311" "107659"
[45] "108778" "108906" "112029" "120840" "127396" "33371" "90150" "111095" "122230"
> to
[1] "54774" "110781" "20693" "83961" "88565" "20338" "33340" "91043" "90171" "98035" "115771"
[12] "1976" "71439" "75019" "75020" "89929" "89929" "106279" "107489" "111139" "32993" "72272"
[23] "111060" "111071" "2697" "12090" "17323" "17413" "20300" "18561" "20025" "28046" "30744"
[34] "31587" "33113" "44067" "54799" "54803" "87073" "94816" "97872" "101122" "103480" "107679"
[45] "109013" "109256" "112246" "120842" "127401" "32679" "90259" "111028" "122228"
然后我尝试将这些节点的图形涂成红色,但出现错误:
> V(gg)[from]$color<-"red"
Error in unclass(x)[i] : invalid subscript type 'closure'
> V(gg)[to]$color<-"red"
Error in unclass(x)[i] : invalid subscript type 'closure'
【问题讨论】:
-
旁注:在以后的帖子中,我建议您#1 使用
dput或read.table(请参阅我的回答)或类似的方式提供您的数据,这样便于读者复制您的问题; #2 删掉赘肉(减少文本/更多重点,删除与问题无关的所有内容,例如所有plot参数,...)。