2012-07-09 2 views
1

나는이 벡터를 가지고 : SHLRK03에서igraph를 사용하여 상호 연결된 링크를 플로팅하는 방법은 무엇입니까?

  1. 이 벡터의 값쪽으로 향하고 :

    >dput(SHLRK03) 
    c("CHSLSCR01", "SHLRK04", "SHLRK05", "WLLWCR01", "WLLWCR02", 
    "WNBGORV01", "WNBGORV02", "WNBGORV03", "WNBGORV04", "WNBGORV05", 
    "WNBGORV06") 
    > dput(SHLRK04) 
    "SHLRK05" 
    > dput(WNBGORV01) 
    c("WLLWCR02", "WNBGORV02", "WNBGORV03", "WNBGORV04", "WNBGORV05", 
    "WNBGORV06") 
    

    나는 다음과 같은 방법으로 연결 하나의 플롯을 가져올. WNBGORV01가

WNBGORV01의 값으로 SHLRk04 withing에 그리고 상호 연결된 몇 가지 이상의 값을 가질 가입일

  • SHLRK04
  • 값의 값쪽으로 SHLRK03 플롯 내에서 SHLRK04
  • . 스택 오버플로 및 그물에서 그런 종류의 플롯을 검색하려고했지만 모든 예제를 찾을 수 없었습니다.

    누군가 제발 나를 도와주세요. 시간과 노력에 감사드립니다.

  • 답변

    7

    해당 작업을 수행하는 한 가지 방법은 해당 adjacency matrix을 작성하는 것입니다. 예 :

    vertices <- c("SHLRK03", unique(c(SHLRK03, SHLRK04, WNBGORV01))) 
    adj.mat <- matrix(0, nrow=length(vertices), ncol=length(vertices), 
            dimnames=list(vertices, vertices)) 
    adj.mat["SHLRK03", colnames(adj.mat) %in% SHLRK03] <- 1 
    adj.mat["SHLRK04", colnames(adj.mat) %in% SHLRK04] <- 1 
    adj.mat["WNBGORV01", colnames(adj.mat) %in% WNBGORV01] <- 1 
    library(igraph) 
    g <- graph.adjacency(adj.mat) 
    V(g)$label <- V(g)$name 
    plot(g) 
    

    온라인 문서에서 찾을 수있는 그래프 레이아웃, 정점 레이블 지정 등에 대한 몇 가지 옵션이 있습니다. 위의 코드를 사용한 기본 렌더링은 다음과 같습니다. 당신이 이와 같은 여러 가지 벡터가있는 경우

    enter image description here

    , 당신은 확실히 작은 도우미 함수와 인접 행렬의 작성을 자동화 할 수 있습니다.

    관련 문제