2013-11-28 3 views
1

이렇게하면 다음과 같은 두 가지 색상으로 평면 (격자 영역 : http://postimg.org/image/j37tz50oj/, 아래 참조, igraph 클래스 객체)을 색칠해야합니다. 왼쪽 색상 영역의 아래쪽 구석에서 시작 검은 색 등고선까지 첫 번째 색 (예 : 파란색)을 사용하고 검은 색 등고선까지 두 번째 색 (예 : 회색)으로 변경 한 다음 첫 번째 색으로 변경합니다. 이 방법으로 색상을 지정하면 검정색 가장자리로 구분 된 회색 및 파란색 영역이 나타납니다. R이 그렇게 할 수 있습니까? 어떻게 또는 무엇을 사용할 것인가? 이것에 대한R의 격자 배경을 채색하는 방법

내 코드 :

g <- graph.lattice(c(n1,n2), directed=T) 
lay <- layout.grid(g) 
V(g)$x <- lay[,1] 
V(g)$y <- lay[,2] 
V(g)$label <- paste(V(g)$x+1, V(g)$y+1, sep=",") 

torem <- c(E(g)[ V(g)[x==0] %--% V(g)[x==0] ], 
      E(g)[ V(g)[y==0] %--% V(g)[y==0] ], 
      E(g)[ V(g)[x==(n1-1)] %--% V(g)[x==(n1-1)] ], 
      E(g)[ V(g)[y==(n1-1)] %--% V(g)[y==(n1-1)] ]) 
g2 <- delete.edges(g, torem) 

g3 <- delete.vertices(g2, V(g2)[ x %in% c(0,(n1-1)) & y %in% c(0,(n1-1)) ]) 
for(i in 1:length(E(g))){ 
    E(g3)[i]$color <- ifelse((E(g3)[i]$bernoulli==0) || (E(g3)[i]$bernoulli==1)  ,ifelse((E(g3)[i]$bernoulli==0), "white", "black"), "grey") 
} 
plot(g3,layout=cbind(V(g3)$x, V(g3)$y), vertex.size=1, vertex.shape="none", vertex.color = NA, vertex.label=NA, edge.arrow.size = 0.1) 

enter image description here

답변

0

사용 symbols(squares=..., inches=FALSE, add=TRUE) 오른쪽 축이 플롯을 만든 후, 그래프를 플롯 한 다음 add=TRUE, rescale=FALSE와 그래프를 플롯하기 전에.

(장난감) 데이터 세트를 질문에 포함시킨 다음 전체 코드를 포함 시키십시오.

+0

코드를 추가했습니다. 길어서 미안하지만, 나는 그걸로 아주 새롭다. – user3001385

+0

네가 최소한으로 만들 수 있다면 좋을 것이다. 결국 세부 사항은 중요하지 않습니다. 격자를 그리는 코드는 괜찮습니다. –

+0

코드를 편집했습니다. – user3001385