draw

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2022 License: Apache-2.0 Imports: 4 Imported by: 44

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) 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

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL