package draw

Import Path
	github.com/dominikbraun/graph/draw (on go.dev)

Dependency Relation
	imports 4 packages, and imported by one package

Involved Source Files 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.
Package-Level Functions (total 2)
Type Parameters: K: comparable T: any 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"))
GraphAttribute is a functional option for the [DOT] method.