前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原创投稿--数据可视化库go-echarts

原创投稿--数据可视化库go-echarts

作者头像
李海彬
发布2019-05-22 14:41:41
1.4K0
发布2019-05-22 14:41:41
举报
文章被收录于专栏:Golang语言社区Golang语言社区

我是一名 Golang 开发爱好者 今天开源了一个数据可视化库 想填补一下 Golang 在这方面的空缺 项目地址是:https://github.com/chenjiandongx/go-echarts

代码语言:javascript
复制
1$ cd your/gopath/src/github.com/chenjiandongx/go-echarts/example
2$ go build .
3$ ./example

sankey.go:

代码语言:javascript
复制
 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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档