edgepaint - Man Page
edge coloring to disambiguate crossing edges
Examples (TL;DR)
- Colorize edges of one or more graph layouts (that already have layout information) to clarify crossing edges:
edgepaint path/to/layout1.gv path/to/layout2.gv ... > path/to/output.gv
- Colorize edges using a color scheme. (See https://graphviz.org/doc/info/colors.html#brewer):
edgepaint -color-scheme=accent7 path/to/layout.gv > path/to/output.gv
- Lay out a graph and colorize its edges, then convert to a PNG image:
dot path/to/input.gv | edgepaint | dot -T png > path/to/output.png
- Display help:
edgepaint -?
Synopsis
[ options ] [ -o outfile ] [ files ]
Description
edgepaint takes as input a graph in DOT format with node position information (the pos attribute) and colors the edges in a manner making it easier to tell them apart.
Options
The following options are supported:
- --accuracy=e
Accuracy with which to find the maximally different coloring for each node with regard to its neighbors. Default e = 0.01.
- --angle=a
Color two edges differently if their incidence angle is less than a degrees. Default a = 15.
- --random_seed=s
Random seed to use. s must be an integer. If s is negative, we do |s| iterations with different seeds and pick the best.
- --lightness=l1,l2
Only applies for the "lab" color scheme: l1 and l2 must integers, with 0 <= l1 <= l2 <=100. By default, we use "0,70".
- --share_endpoint
If this option is specified, edges that share a node are not considered in conflict if they are close to parallel but are on the opposite sides of the node (around 180 degree).
- -o f
Write output to file f (default: stdout).
- --color_scheme=c
Specifies the color scheme. This can be "rgb", "gray", "lab" (default); or a comma-separated list of RGB colors in hex (e.g., "#ff0000,#aabbed,#eeffaa") representing a palette; or a string specifying a Brewer color scheme (e.g., "accent7"; see https://graphviz.org/doc/info/colors.html#brewer).
- -v
Turns on verbose mode.
- -?
Print usage and exit.
Bugs
At present, edgepaint does not handle graphs with loops or directed multiedges. So, a graph with edges a -> b and b -> a is acceptable, but not if it has edges a -> b and a -> b or a -- b and a -- b. Ports are ignored in this analysis, so having a.x -> b and a.y -> b is also not supported.
Author
Yifan Hu <yifanhu@yahoo.com>