[R] igraph and plotting connected components

elw at stderr.org elw at stderr.org
Tue Oct 9 03:11:16 CEST 2007

>> Hello there,
>>   I am using the igraph package to build graphs from my data. If I plot 
>> a graph though, it's not easy for me to see what's going on. Does 
>> anybody know how to rearrange a graph to get a plot without too many 
>> crossing lines? Maybe other packages?

Edge-crossing minimization is a research topic all in itself, for folks 
who deal with graph-style data on a regular basis.  ;-)  It is *hard* to 
construct sane graphs automatically, which is why software in this area so 
frequently produces what appear to be sub-par results.  [And it is 
difficult for human beings to evaluate the 'quality' of such graphs, 
comparatively - we just aren't good at this task.]

> Rgraphviz in Bioconductor does a great job of this.  It's a wrapper for 
> the Graphviz library, so the R docs are a little sparse, but there's a 
> tremendous amount of flexibility there.

Seconded - graphviz in general is quite good; getting your data into 
dot-file format is often a productive step in the viz process.

Dot-file format is also *ridiculously simple* to generate , which I think 
of as a factor well in its favor.  :-)

the dynamicGraph package (which I think lives in bioconductor as well) is 
reasonably useful for smallish graphs.

I hear that there's a tk-based interactive graph layouter available with 
graphviz's source - you might look there, too.

There's also Pajek, which is pretty and interactive but not R, 
for-Windows, and not even very compatible with the data formats usually 
used by folks with R.  ;)

There's also the pixelglow build of graphviz on OSX, which is beautiful 
and fun to mess with.

There are a couple other graph packages as well... most not interactive, 
which sounds like what you're likely wanting.

[With some of the iterative graph rendering algorithms - particularly the 
ones that deal with energy minimization algorithms and the like - 
nondeterministic mostly - you can sometimes re-run the layout function and 
get wildly different results, particularly for complex graphs.  You might 
try this.]

--elijah wright
school of library and information science
indiana university, bloomington

More information about the R-help mailing list