Le package encoding
de Gorgonia contient une fonction permettant de déployer le ExprGraph
en dot language.
Cela permet d’utiliser le programme graphviz pour générer des versions png ou svg du graphique.
Une manière simple de le faire :
package main
import (
"fmt"
"log"
"gorgonia.org/gorgonia"
"gorgonia.org/gorgonia/encoding/dot"
)
func main() {
g := gorgonia.NewGraph()
var x, y *gorgonia.Node
// define the expression
x = gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("x"))
y = gorgonia.NewScalar(g, gorgonia.Float64, gorgonia.WithName("y"))
gorgonia.Add(x, y)
b, err := dot.Marshal(g)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(b))
}
Lancer ce programme et mettre ce qu’il renvoie dans le dot process permet d’obtenir une image.
par exemple :
$ go run main.go | dot -Tsvg > dot-example.svg
donne ce graphique :