我在繪製網絡圖並嘗試使用非重疊屬性對頂點着色。我希望我的網絡圖根據不同的屬性進行着色。在這個例子中,如果ID 2的前三個字母等於U 50或U 51,我希望它顯示爲紅色。我有5個屬性我希望這個圖表編碼,任何不屬於其中一個類別的觀察值都應該用默認顏色編碼。通過這種方式,我將能夠看到這些屬性的強度,並更好地將其傳達給其他人。到目前爲止,我一直無法使用各種不同的編碼方法使代碼工作。首先,我試圖創建一個新的變量,在將每個觀察值轉換爲一個i圖形對象之前爲其分配正確的屬性。如何使用R中的igraph將邊緣屬性編碼爲頂點屬性
anon.nd$vertexcolor[substr(anon.nd$ID2,1,3)=="U50" | substr(anon.nd$ID2,1,3)=="U51"]<-"O"
anon.nd$vertexcolor[substr(anon.nd$ID2,1,3)=="U54" | substr(anon.nd$ID2,1,3)=="U55"]<-"P"
anon.nd$vertexcolor[anon.nd$INT.type=="K1"]<-"INT.NB"
anon.nd$vertexcolor[anon.nd$Country=="L12"]<-"UK"
anon.nd$vertexcolor[anon.nd$ID2=="U769"]<-"OBL"`
然後我指定了顏色我想分配給每個屬性。我使用get vertex屬性代碼並填充適當的顏色。
anon.nd1<-graph.data.frame(anon.nd)
vertex_colors=get.vertex.attribute(anon.nd1,"vertexcolor")
colors=c('azure3', 'firebrick1', 'orange1', 'darkblue', 'darkolivegreen', 'gold')
vertex_colors[vertex_colors==0]=colors[1]
vertex_colors[vertex_colors==1]=colors[2]
vertex_colors[vertex_colors==2]=colors[3]
vertex_colors[vertex_colors==3]=colors[4]
vertex_colors[vertex_colors==4]=colors[5]
vertex_colors[vertex_colors==5]=colors[6]
我嘗試這個相同的方法僅使用:
vertex_colors < -vertex_colors + 1
然後繪製,我改變邊緣的顏色爲黑色,指定我的佈局,並改變我邊的尺寸和頂點。
E(anon.nd1)$color="black"
nd.layout<-layout.fruchterman.reingold(anon.nd1)
plot(anon.nd1, layout=nd.layout, vertex.color=vertex_colors, vertex.size=2, edge.arrow.size=.01, vertex.label=NA)
使用此方法,頂點上不會顯示顏色,甚至不會顯示默認顏色。使用不同的方法設置頂點屬性,我會做得更好一些。默認顏色顯示,但我想要的顏色不。
anon.nd2<-graph.data.frame(anon.nd)
V(anon.nd2)$colors<-"azure3"
V(anon.nd2)$colors[substr(anon.nd2$ID2,1,3)=="U50" | substr(anon.nd2$ID2,1,3)=="U51"]<-"firebrick1"
V(anon.nd2)$colors[substr(anon.nd2$ID2,1,3)=="U54" | substr(anon.nd2$ID2,1,3)=="U55"]<-"orange1"
V(anon.nd2)$colors[anon.nd2$Country=="L12"]<-"darkblue"
V(anon.nd2)$colors[anon.nd2$INT.type=="K1"]<-"darkolivegreen"
V(anon.nd2)$colors[anon.nd2$ID2=="U769"]<-"gold"
E(anon.nd2)$color<-"black"
nd.layout<-layout.fruchterman.reingold(anon.nd2)
windows(width=20, height=16)
plot(anon.nd2, layout=nd.layout, vertex.size=2, edge.arrow.size=.01, vertex.label=NA, vertex.color="vertex_colors")
我認爲這個問題可能是我使用多個(非重疊)邊緣屬性試圖代碼頂點顏色。但我不知道如何將邊緣屬性轉換爲頂點屬性。我也不知道我的代碼是否還有其他一些未知的問題。
下面是我的數據鏈接複製下面以及一個鏈接到我的完整的代碼文件,其中有一個或兩個其他方法,我試圖用來解決這個問題。任何幫助將非常感激! Data
這裏是我的代碼,這也是上述的R檔:R-file