我是一名 Golang 开发爱好者 今天开源了一个数据可视化库 想填补一下 Golang 在这方面的空缺 项目地址是:https://github.com/chenjiandongx/go-echarts
1$ cd your/gopath/src/github.com/chenjiandongx/go-echarts/example
2$ go build .
3$ ./example
sankey.go:
1package main
2
3import (
4 "encoding/json"
5 "fmt"
6 "log"
7 "net/http"
8 "os"
9 "path"
10
11 "github.com/chenjiandongx/go-echarts/charts"
12 "github.com/gobuffalo/packr"
13)
14
15var sankeyNode = []charts.SankeyNode{
16 {Name: "category1"},
17 {Name: "category2"},
18 {Name: "category3"},
19 {Name: "category4"},
20 {Name: "category5"},
21 {Name: "category6"},
22}
23
24var sankeyLink = []charts.SankeyLink{
25 {Source: "category1", Target: "category2", Value: 10},
26 {Source: "category2", Target: "category3", Value: 15},
27 {Source: "category3", Target: "category4", Value: 20},
28 {Source: "category5", Target: "category6", Value: 25},
29}
30
31func sankeyBase() *charts.Sankey {
32 sankey := charts.NewSankey()
33 sankey.SetGlobalOptions(charts.TitleOpts{Title: "Sankey-示例图"})
34 sankey.Add("sankey", sankeyNode, sankeyLink, charts.LabelTextOpts{Show: true})
35 return sankey
36}
37
38func graphEnergy() *charts.Sankey {
39 sankey := charts.NewSankey()
40 sankey.SetGlobalOptions(charts.TitleOpts{Title: "Sankey-官方示例"})
41 box := packr.NewBox(path.Join(".", "fixtures"))
42 f, err := box.Find("energy.json")
43 if err != nil {
44 log.Fatal(err)
45 }
46 type Data struct {
47 Nodes []charts.SankeyNode
48 Links []charts.SankeyLink
49 }
50
51 var data Data
52 if err := json.Unmarshal(f, &data); err != nil {
53 fmt.Println(err)
54 }
55 sankey.Add("sankey", data.Nodes, data.Links,
56 charts.LineStyleOpts{Curveness: 0.5, Color: "source"},
57 charts.LabelTextOpts{Show: true},
58 )
59 return sankey
60}
61
62func sankeyHandler(w http.ResponseWriter, _ *http.Request) {
63 page := charts.NewPage(orderRouters("sankey")...)
64 page.Add(
65 sankeyBase(),
66 graphEnergy(),
67 )
68 f, err := os.Create(getRenderPath("sankey.html"))
69 if err != nil {
70 log.Println(err)
71 }
72 page.Render(w, f)
73}
Golang语言社区
ID:Golangweb
游戏服务器架构丨分布式技术丨大数据丨游戏算法学习
ByteEdu教育平台——提供海量游戏开发课程
www. ByteEdu.Co