시작하기무료로 시작하기

가장 큰 클리크 시각화하기

네트워크를 시각화할 때는 특정 정점들의 연결 관계를 살펴보기 위해 네트워크의 일부를 부분 집합으로 추출하는 일이 자주 필요합니다. 여기서는 Forrest Gump 네트워크에서 가장 큰 클리크를 시각화해 보겠습니다. 이전 연습 문제에서 크기가 9인 클리크가 두 개 있다는 것을 확인했죠. 전체 네트워크에서 이 두 클리크만 추출해 두 개의 새로운 igraph 객체를 만든 뒤, 이를 나란히 그려볼 것입니다. subgraph() 함수는 새 네트워크 객체에 어떤 정점을 유지할지 선택하도록 해줍니다.

이 연습은 강의의 일부입니다

R로 하는 네트워크 분석

강의 보기

연습 안내

  • 네트워크에서 가장 큰 클리크들의 리스트를 객체 lc에 할당하세요.
  • subgraph() 함수를 사용해 두 개의 새로운 무방향 서브그래프를 만드세요. 첫 번째 gs1에는 첫 번째 가장 큰 클리크의 정점만 포함되도록 하세요. 두 번째 gs2에는 두 번째 가장 큰 클리크의 정점만 포함되도록 하세요. 서브그래프도 무방향이 되도록 이 함수를 as.undirected()로 감쌉니다.
  • plot()을 사용해 두 개의 가장 큰 클리크를 나란히 시각화하세요. 먼저 par(mfrow=c(1,2)) 코드를 실행하세요. 이렇게 하면 두 시각화가 좌우로 배치됩니다. 보기 쉽게 하려면 레이아웃을 layout.circle()로 설정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

library(igraph)

# Assign largest cliques output to object 'lc'
lc <- ___(g)

# Create two new undirected subgraphs, each containing only the vertices of each largest clique.
gs1 <- as.undirected(___(g, ___[[1]]))
gs2 <- as.undirected(___(g, ___[[2]]))


# Plot the two largest cliques side-by-side

par(mfrow=c(1,2)) # To plot two plots side-by-side

___(gs1,
     vertex.label.color = "black", 
     vertex.label.cex = 0.9,
     vertex.size = 0,
     edge.color = 'gray28',
     main = "Largest Clique 1",
     layout = ___(gs1)
)

___(gs2,
     vertex.label.color = "black", 
     vertex.label.cex = 0.9,
     vertex.size = 0,
     edge.color = 'gray28',
     main = "Largest Clique 2",
     layout = ___(gs2)
)
코드 편집 및 실행