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

Смежные вопросы