[ library(graphviz) | Reference Manual | Alphabetic Index ]
view_graph(+Graph, +Options)
Display a given graph in a window
- Graph
- A graph structure
- Options
- A list of Option:Value pairs
Description
This predicate takes a graph, applies one of the graphviz layout routines
to it, and displays the result in a viewer window.
The viewer is an application called grappa, which requires Java.
Possible options are:
- graph_attrs
- a list of Name=Value pairs which specify the graph attributes
- default_edge_attrs
- a list of Name=Value pairs which specify the default edge attributes
- default_node_attrs
- a list of Name=Value pairs which specify the default node attributes
- node_attrs_generator
- a partialpredicate specification pred(ExtraArgs,...) that
will generate node attributes for specific nodes. This
predicate will be invoked for every node in the graph with the
arguments pred(ExtraArgs,...,+Graph, +Node, -AttrList). It is
expected to compute an attribute list for a particular
node. If it fails, the node will be displayed using the
default node attributes.
- edge_attrs_generator
- a partialpredicate specification pred(ExtraArgs,...) that
will generate edge attributes for specific edges. This
predicate will be invoked for every edge in the graph with the
arguments pred(ExtraArgs,...,+Graph, +Edge, -AttrList). It is
expected to compute an attribute list for a particular
edge. If it fails, the edge will be displayed using the
default edge attributes.
- layout
- One of the atoms: none, dot, neato, twopi, force_directed, radial,
tree, top_to_bottom, left_to_right.
Alternatively, a list specifying a layout command (see exec/3).
For the exact definition of graph, node and edge attributes, see the
specification of the DOT language in the graphviz documentation.
Modules
This predicate is sensitive to its module context (tool predicate, see @/2).
Examples
?- lib(graph_algorithms), lib(graphviz).
Yes (1.17s cpu)
?- make_random_graph(10, 30, true, true, true, G),
view_graph(G, [layout:left_to_right]).
G = graph(...)
Yes (0.03s cpu)
?- make_random_graph(10, 30, true, true, true, G),
view_graph(G, [layout:left_to_right]).
G = graph(...)
Yes (0.03s cpu)
% Sample node attribute generator
node_colour(Graph, Node, Attrs) :-
( Node mod 2 =:= 0 -> Attrs = [color=red] ; Attrs = [color=green] ).
% Sample run
?- make_random_graph(10, 30, true, true, true, G),
view_graph(G, [node_attrs_generator:node_colour]).
G = graph(...)
Yes (0.03s cpu)
See Also
view_graph / 1, library(graph_algorithms)