Søren Højsgaard
2006-Jul-06 00:21 UTC
[R] Rgraphviz: How to control the colours of edges in a graph
Using Rgraphviz, I draw the undirected graph with vertices A,B,C and D and edges
A:B, B:C, C:D, D:A, A:C. I want the vertices A and B to be red and C and D to be
blue. The problem is the following: I want the edges A:B and B:C to be green and
the edges C:D and C:A to be yellow, while the edge A:C can have the default
colour black. I assume that I have to specify this using the edgeAttrs-argument
in the plot function, but I can't figure out how. Can anyone help?
Thanks.
S?ren
Code for drawing the graph:
library(Rgraphviz)
V <- c("A","B","C","D")
E <-
list(c("A","B"),c("B","C"),c("C","D"),c("D","A"),c("A","C"))
Eidx <- lapply(E, match, V)
edL <- vector("list", length=length(V))
names(edL) <- V
for (i in 1:length(Eidx)){
tmp <- Eidx[[i]]
print(tmp)
edL[[tmp[1]]]$edges <- c(edL[[tmp[1]]]$edges, tmp[2])
edL[[tmp[2]]]$edges <- c(edL[[tmp[2]]]$edges, tmp[1])
}
G <- new("graphNEL", nodes=V, edgeL=edL)
nAttrs <- list()
nAttrs$fillcolor <-
c("red","red","blue","blue")
names(nAttrs$fillcolor) <- V
plot(G, "neato",nodeAttrs=nAttrs)
Gabor Grothendieck
2006-Jul-06 01:33 UTC
[R] Rgraphviz: How to control the colours of edges in a graph
Try this:
eAttrs <- list(color = c("A~B" = "green", "B~C"
= "green", "C~D" = "yellow",
"A~C" = "yellow"))
plot(G, "neato", nodeAttrs = nAttrs, edgeAttrs = eAttrs)
More info via:
vignette("Rgraphviz")
On 7/5/06, S?ren H?jsgaard <Soren.Hojsgaard at agrsci.dk>
wrote:> Using Rgraphviz, I draw the undirected graph with vertices A,B,C and D and
edges A:B, B:C, C:D, D:A, A:C. I want the vertices A and B to be red and C and D
to be blue. The problem is the following: I want the edges A:B and B:C to be
green and the edges C:D and C:A to be yellow, while the edge A:C can have the
default colour black. I assume that I have to specify this using the
edgeAttrs-argument in the plot function, but I can't figure out how. Can
anyone help?
> Thanks.
> S?ren
>
> Code for drawing the graph:
>
> library(Rgraphviz)
> V <- c("A","B","C","D")
> E <-
list(c("A","B"),c("B","C"),c("C","D"),c("D","A"),c("A","C"))
> Eidx <- lapply(E, match, V)
> edL <- vector("list", length=length(V))
> names(edL) <- V
> for (i in 1:length(Eidx)){
> tmp <- Eidx[[i]]
> print(tmp)
> edL[[tmp[1]]]$edges <- c(edL[[tmp[1]]]$edges, tmp[2])
> edL[[tmp[2]]]$edges <- c(edL[[tmp[2]]]$edges, tmp[1])
> }
> G <- new("graphNEL", nodes=V, edgeL=edL)
> nAttrs <- list()
> nAttrs$fillcolor <-
c("red","red","blue","blue")
> names(nAttrs$fillcolor) <- V
> plot(G, "neato",nodeAttrs=nAttrs)
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>