[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] plot: edges cross vertexes

From: Sam Steingold
Subject: Re: [igraph] plot: edges cross vertexes
Date: Sun, 14 Oct 2012 11:33:28 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

Hi Tamás,

> * Tamás Nepusz <address@hidden> [2012-10-13 16:30:42 +0200]:
> The primary purpose of supporting curved edges is to ensure that
> multiple edges between the same node pairs are all visible. igraph
> does not try to set the curvature of edges to avoid other nodes (and I
> guess it would be quite complicated anyway if you take into account
> that nodes may have different shapes).

You might consider the following approach:
1. sort the edges in decreasing order of weights.
2. for each edge not yet drawn, draw it as a straight line; if it does
not hit another vertex or intersection of edges, we are done; otherwise
replace it with a piece-wise spline avoiding vertexes and edge

Actually, I think there are plenty of papers on graph visualization.

I know this is not a simple problem; however, I think it is worth more
attention than it got so far.

> However, you may supply a vector of numbers to edge.curved instead of
> a single boolean and control the curvature of each edge
> individually. edge.curved=TRUE is equivalent to specifying a curvature
> of 0.5 for every edge, so a good starting point would be to construct
> a vector consisting of 0.5 only and then modifying the curvature of
> individual edges that cause problems. You can use get.edge.ids to find
> the indices of specific edges in your graph in order to figure out
> which element of the curvature vector should be adjusted.

This requires to much manual labor for each graph.

Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000
http://www.childpsy.net/ http://thereligionofpeace.com
http://mideasttruth.com http://ffii.org http://honestreporting.com
(let ((a "(let ((a %c%s%c)) (format a 34 a 34))")) (format a 34 a 34))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]