graph editors?
July 8, 2006 11:45 PM   Subscribe

Graph editor: I'm looking for a graph editor I can use to create print quality graphs (the node/edge kind, not the excel kind). Requirements inside.

I'm trying to create a "pretty" visualization of some data in directed graph (node/edge) form. There are hundreds of nodes, so I would like to be able to select multiple nodes and move them to different parts of the canvas while keeping the edges intact.


1) Import data (opening svg files would be fine)
2) Move nodes as a group, keeping edges intact
3) Allow me to change arrow size/curve of edges
4) Save img to svg (requirement as I'm planning on customizing the display of the nodes)

No program I've seen allows me to do (2). This seems like a basic feature, so please tell me if this is something I've simply missed.

Inkscape does not do what I need afaik, so please don't recommend it.

posted by null terminated to Technology (10 answers total) 6 users marked this as a favorite
Response by poster: Windows XP, btw.
posted by null terminated at 12:01 AM on July 9, 2006

Didja try Graphviz?
posted by funkbrain at 12:41 AM on July 9, 2006

Response by poster: funkbrain: I tried a command line version of graphviz but the resulting graph was too cramped. I would love to be able to take a graphViz graph and move nodes around a bit, but haven't found a way to do that.
posted by null terminated at 12:53 AM on July 9, 2006 has a Draw component that will allow you to select multiple shapes (with control-click, or by dragging a selection rectangle around them) and move them all at once; if the shapes are connected by connectors, as opposed to simple lines, then the connections will stay intact when you do this.

OOo will export to SVG as standard, and there's an SVG import filter available here.

This might also be of interest, though the workflow looks a little hairy.
posted by flabdablet at 5:39 AM on July 9, 2006

Response by poster: Thanks, I'll check those out. After months of searching I found a program that may do the trick (yEd) an hour after posting this question. Such is life.
posted by null terminated at 5:48 AM on July 9, 2006

If you have some time to kill, you should check out DIMACS. They've more or less been the centre for combinatorial research. In fact the widely known (within the field, at least) annual DIMACS contest revolves around a standardized directed graph format for which a lot of open-source software exists.

Unfortunately, as is usually the case in academia (especially computer science), the software is poorly publicized, poorly documented and poorly maintained. It's usually hacked together by a grad student and then left to rot once he graduates.

Anyway, when I last played with this stuff in the late 1990s I do remember using software that accomplished all of what you are asking for, but you will have to dig around for it. Hopefully I've given you a nudge in the right direction -- sorry couldn't be more specific.
posted by randomstriker at 6:52 AM on July 9, 2006

I did basically exactly this a few years ago. Here's how I did it:
  1. Imported data into a Java application, using the JUNG framework.
  2. Crunched a bunch of data and rendered the graphs, again using JUNG.
  3. Manipulated the graphs in JUNG's interactive layout mode (meets the "move nodes and edges will follow" requirement).
  4. Exported to EPS (there are plugins for exporting to SVG, too)
  5. Touched up the results in Illustrator (or Inkscape with SVG)
  6. Rejoice
I understand this isn't particularly helpful if you don't want to write your own application, but I thought I'd throw it out there for posterity. The yEd thing you linked looks pretty great, but if you need more flexibility, JUNG can take you a long way.

Good luck!
posted by heresiarch at 7:51 AM on July 9, 2006

Here's a list of network visualization programs written in Java. I haven't gotten around to playing with them yet so I'm not sure which matches your needs exactly but one of them ought to come pretty close.
posted by scalefree at 9:09 AM on July 9, 2006

A few more options to try: NetworkX (requires Python), Pajek, igraph, Agna, GraphPlot, uDraw(Graph) & visone.
posted by scalefree at 9:28 AM on July 9, 2006

yEd is fantastic -- one of the few arguments that Java can put together a reasonable GUI application.

You should check out Tulip if your graphs are large, aiSee if you want actively programmable graphs, and Xovi if you want to play with streaming graphs (note -- I wrote Xovi, and I never did implement printing support. Could, though.)
posted by effugas at 6:37 PM on July 9, 2006

« Older Tips / hints for using Priceline.   |   new homebuilt computer is acting very odd with the... Newer »
This thread is closed to new comments.