Gorgonia の encoding
パッケージには、ExprGraph
を dot language にマーシャリングする関数が含まれています。
これにより graphviz プログラムを用いてグラフの png または svg バージョンを生成することができます。
簡単な方法:
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))
}
このプログラムを実行して出力を dot プロセスに送り込むと画像が生成されます。
例:
$ go run main.go | dot -Tsvg > dot-example.svg
この画像が出力されます: