Documentation
¶
Overview ¶
Package draw provides functions for visualizing graph structures. At this time, draw supports the DOT language which can be interpreted by Graphviz, Grappa, and others.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DOT ¶ added in v0.8.0
func DOT[K comparable, T any](g graph.Graph[K, T], w io.Writer, options ...func(*description)) error
DOT renders the given graph structure in DOT language into an io.Writer, for example a file. The generated output can be passed to Graphviz or other visualization tools supporting DOT.
The following example renders a directed graph into a file my-graph.gv:
g := graph.New(graph.IntHash, graph.Directed()) _ = g.AddVertex(1) _ = g.AddVertex(2) _ = g.AddVertex(3, graph.VertexAttribute("style", "filled"), graph.VertexAttribute("fillcolor", "red")) _ = g.AddEdge(1, 2, graph.EdgeWeight(10), graph.EdgeAttribute("color", "red")) _ = g.AddEdge(1, 3) file, _ := os.Create("./my-graph.gv") _ = draw.DOT(g, file)
To generate an SVG from the created file using Graphviz, use a command such as the following:
dot -Tsvg -O my-graph.gv
Another possibility is to use os.Stdout as an io.Writer, print the DOT output to stdout, and pipe it as follows:
go run main.go | dot -Tsvg > output.svg
DOT also accepts the GraphAttribute functional option, which can be used to add global attributes when rendering the graph:
_ = draw.DOT(g, file, draw.GraphAttribute("label", "my-graph"))
func GraphAttribute ¶ added in v0.17.0
func GraphAttribute(key, value string) func(*description)
GraphAttribute is a functional option for the DOT method.
Types ¶
This section is empty.