開始使用免費開始

視覺化重要的節點與邊

這個麻疹資料集有一個問題:有 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"
     )
編輯並執行程式碼