2016-10-31 6 views
0

에 무작위 그래프를 만들고 있습니다 (igraph -library).R 같은 구조의 무작위 그래프를 그립니다.

library(igraph) 
g <- erdos.renyi.game(12, 0.25) 
par(mfrow=c(1,2)) 
plot(g) 
plot(g) 

이 다음 플롯을 생성합니다 : 당신이 볼 수 있듯이

random graph

, 그것은 두 개의 서로 다른 플롯가 생성 - 심지어 같은 노드와 엣지를 주어. R 줄거리를 동일한 플롯으로 만들려면 어떻게해야합니까? 동일한 순서로 여러 가장자리/노드를 강조 표시 할 수 있습니다.

목표는 두 노드가 모서리로 연결될 확률이있는 임의의 네트워크를 만드는 것입니다 (위의 예는 n=12 노드의 경우 p=0.25 임). 그런 다음이 그래프는 플롯 할 때마다 동일한 지점 (노드 크기 변수가 있더라도)에 노드로 플롯됩니다.

어떻게하면됩니까? 나는 g <- erdos.renyi.game(12, 0.25)에 국한되지 않는다는 것을 유의하십시오 - 그것은 다만 무작위 네트워크를 가진 일을 확실히 잘했다.

+0

내가의 마크를 그리워 완전 수를 당신의 의도는 "일관된 무작위성"을 원한다면,'set.seed'해야합니다. –

+0

아닙니다. 난 무작위 그래프'g'를 한 번만 생성합니다. 나는이 그래프를 똑같이 꾸미기를 원한다. 그래프 'g'는 플롯 간의 구조를 변경하지 않습니다. – user3079834

+0

패키지를 살펴본 결과,이 함수의 아이디어가 무작위 그래프를 생성한다는 것이 깨달았습니다.이 그래프를 이미지 파일에 저장 한 다음이 이미지를 두 번 플롯하는 것이 빠른 해결책입니다. –

답변

2

당신은 좌표

레이아웃을 얻기 위해 매트릭스 또는 함수로 레이아웃을 지정하기 위해 시도 할 수 있습니다 각각의 플롯

을 다시 계산 igraph layout= layout_nicely 기본적으로

기능 또는 숫자 매트릭스 중 하나. 그것은 플롯에 정점을 배치하는 방법을 지정합니다.

수치 행렬 인 경우 행렬에는 각 행마다 하나의 행이 있어야하며 해당 좌표를 지정하십시오. 행렬에는 x 축과 y 좌표에 대해 이상의 두 열이 있어야하며 세 번째 열을 가질 수도 있습니다.이 값은 3D 플롯의 경우 z 좌표이며 2D 플롯의 경우 은 무시됩니다 .....

예를 들어

g <- erdos.renyi.game(12, 0.25) 
g$layout <- layout_as_star 
par(mfrow=c(1,2)) 
plot(g) 
plot(g) 

당신에게 enter image description here

또는 layout_componentsenter image description here

주세요 당신이 찾을 수

전체 목록 here

업데이트

또한 같은 하나의 그래프의 취득 좌표 점의 위치를 ​​수정할 수 있습니다

par(mfrow=c(2,2)) 
for(i in 1:4){ 
    g <- erdos.renyi.game(12, 0.25) 
if(i ==1) coords <- layout_components(g) # if first -- get coordinates 
    g$layout <- coords 
    plot(g) 
} 

enter image description here

+0

때때로 트릭을합니다. 나는 그래프를 그리기 전까지 여러 개의 무작위로 생성 된 그래프를 시도해야만한다. 그리곤 매번 동일한 플롯을 그릴 것이다. – user3079834

관련 문제