> I thought that the commands > gm<-set.edge.attribute(gm, "weight", index=E(gm), value=weights) > gm<-set.edge.attribute(gm, "length", index=E(gm), value=weights) > ensure that plot(gm) yields the edge lengths corresponding to the values > of vector weights. No, it doesn’t. *Some* layout algorithms *might* take into account the weights of the edges to *some* extent (i.e. they would *try* to ensure that edges with larger weights end up being shorter than edges with smaller weights), but there is no layout algorithm that would guarantee that the lengths you specify are satisfied exactly. The main reason is that most of the length combinations are impossible to satisfy in the 2D plane; for instance, it is impossible to plot a full graph of size 4 if we want every single edge to be of length 1 (and there are infinitely many examples for this).
As far as I know, the Fruchterman-Reingold layout algorithm (see layout.fruchterman.reingold) is the only one in igraph that supports weights; see http://igraph.sourceforge.net/doc/R/layout.html . But even for the Fruchterman-Reingold algorithm, the only thing that the weights do is that they make the attraction forces between the endpoints of the edges proportional to the weight of the edge. — T. _______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
