2016-08-31 6 views
2

입니다. 저는 igraph에서 KEGG xml에서 가져온 그래프를 직접 시각화하려고합니다. 나는 그래프와 가장자리 목록에 대한 인접 매트릭스를 조사했다. 예를 들어 억제, 활성화 및 바인딩 연관 (가중치가 없음)이있는 예를 들어 가장자리에 대한 몇 가지 조건이있다. 이제 가장자리를 다르게 색칠하고 각 조건에 따라 가장자리의 모양을 다르게하고 싶습니다. 예를 들어 활성화를 위해 화살표가있는 가장자리와 녹색으로 표시됩니다. 가장자리에 세로로 늘어선 가장자리와 억제를 위해 빨간색으로 된 가장자리. 바인딩 연결에 대한 점선이 될 수도 있습니다. 이igraph의 가장자리 조건은 R

> entry1 entry2 name 

    > 59   62  activation 
    > 62   57  Inhibition 
    > 61   60  binding association 
    > 53   42  activation 

내 노드가 감독 인접 행렬의 형태처럼

반응라는 이름의 내 에지 목록 보인다.

plot(G,vertex.shape= "rectangle", edge.arrow.size=.3, edge.color=ifelse(reactions$name =="activation", "green", "red"),vertex.color="gold", vertex.size2=1,vertex.frame.color="gray", vertex.label.color="black", vertex.label.cex=1, vertex.label.dist=0.5, edge.curved=0.2) 

나는 코드가 먼저 활성화를 위해 작동하는지 확인하기 위해 단지 노력했다 그리고 나는 다른 조건을 처리하지만, 내 모든 모서리는 단지 활성화 사람 녹색이다.

일부 신체가 나를 도와 줄 수 있습니까? ifelse와 함께 edge.color를 사용해 보았지만 사용 방법을 모른다.

+0

안녕하세요 Saamar, 지금까지 해보신 것은 무엇입니까? XML 소스 또는 XML의 서브 세트와 함께 사용중인 코드 스 니펫을 게시 할 수 있습니까? –

+0

내 세부 사항을 모두 편집했습니다. @KeithHughitt –

답변

2

데이터 프레임에서 조건을 사용하여 변수를 참조하는 대신 그래프 자체의 데이터를 참조하십시오.

str(G) 

(e/c)status 우리가 컬러를 조정하려면 그냥 뭐 가장자리의 특징은, 것을 우리에게 말하고있다 :

library(igraph) 

d <- data.frame(ego=c('59', '62', '61', '53'), alter=c('62', '57', '60', '42'), status=c("activation","Inhibition","binding association","activation")) 

G <- graph_from_data_frame(d) 

그래프가 포함 것을 볼 수 있습니다 : 여기 당신의 그래프를 다시 만들 수 있습니다 및/또는 모서리의 형상을 결정할 수있다.

plot(G) 

plot(G, vertex.shape= "rectangle", edge.arrow.size=.3, edge.color=ifelse(E(G)$status =="activation", "green", "red"), vertex.color="gold", vertex.size2=1, vertex.frame.color="gray", vertex.label.color="black", vertex.label.cex=1, vertex.label.dist=0.5, edge.curved=0.2)