視覺化重要的節點與邊
這個麻疹資料集有一個問題:有 3 位個體的感染來源不明。其中一位(頂點 184)看似最終對將疾病擴散給許多其他人負有關鍵影響,儘管他直接感染的人並不多。不過,由於頂點 184 在網路中沒有入邊,因此它的介數中心性看起來偏低。要探索這個頂點的重要性,其中一個方法是把從這位個體出發的連結的測地距離(geodesic distances)視覺化。在本練習中,你將繪製從這位「病人零號」出發的這些距離圖。
本練習屬於課程
R 的 Network Analysis
練習說明
- 使用
make_ego_graph()建立只包含與頂點 184 相連之頂點的子網路。第一個引數是原始圖g。第二個引數是任一頂點與關注頂點可連通的最大連結數。在此情況下可用diameter()回傳網路中最長路徑長度。第三個引數是關注的頂點,應為 184。最後一個引數是 mode,在此你可以不考慮方向而納入所有連結。 - 建立物件
dists,其中包含從頂點 184 到每個頂點的測地距離。使用distances()來計算。 - 為每個頂點指派屬性
color。每個顏色將依其測地距離選取。色盤colors的長度等於最大測地距離加 1。如此可讓相同距離的頂點以相同顏色呈現,且病人零號也有自己的顏色。 - 使用
plot()視覺化網路g184。頂點標籤請使用測地距離dists。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Make an ego graph
g184 <- ___(g, ___(g), nodes = '184', mode = c("all"))[[1]]
# Get a vector of geodesic distances of all vertices from vertex 184
dists <- ___(g184, "184")
# Create a color palette of length equal to the maximal geodesic distance plus one.
colors <- c("black", "red", "orange", "blue", "dodgerblue", "cyan")
# Set color attribute to vertices of network g184.
V(___)$color <- colors[dists+1]
# Visualize the network based on geodesic distance from vertex 184 (patient zero).
___(___,
vertex.label = ___,
vertex.label.color = "white",
vertex.label.cex = .6,
edge.color = 'black',
vertex.size = 7,
edge.arrow.size = .05,
main = "Geodesic Distances from Patient Zero"
)