https://github.com/go-echarts/go-echarts
在 Golang 这门语言中,目前数据可视化的第三方库还是特别少,go-echarts 的开发就是为了填补这部分的空隙。Echarts 是百度开源的非常优秀的可视化图表库,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。也有其他语言为其实现了相应语言版本的接口,如 Python 的 pyecharts,go-echarts 也是借鉴了 pyecharts 的一些设计思想。
安装
$ go get -u github.com/chenjiandongx/go-echarts/…
https://www.echartsjs.com/zh/index.html
https://github.com/apache/incubator-echarts
https://github.com/wcharczuk/go-chart
https://go-echarts.github.io/go-echarts/docs/gauge
特性
简洁的 API 设计,使用如丝滑般流畅
囊括了 20+ 种常见图表,应有尽有
高度灵活的配置项,可轻松搭配出精美的图表
详细的文档和示例,帮助开发者更快的上手项目
多达 400+ 地图,为地理数据可视化提供强有力的支持
使用
仅需要几行核心代码就可画出美观的图表
go-chart是一个用来生成图表的库,现在已经发布1.0版本了。
通过go get进行下载
go get -u github.com/wcharczuk/go-chart
https://github.com/topfunky/gruff
具体可以参考wiki
https://go-echarts.github.io/go-echarts/
package main
import (
"github.com/go-echarts/go-echarts/charts"
"net/http"
"os"
"log"
"math/rand"
"time"
"github.com/xiazemin/echart/echat/geo"
"github.com/xiazemin/echart/echat/heatMap"
"github.com/xiazemin/echart/echat/page"
"github.com/xiazemin/echart/echat/gauge"
)
var nameItems = []string{"衬衫", "牛仔裤", "运动裤", "袜子", "冲锋衣", "羊毛衫"}
var seed = rand.NewSource(time.Now().UnixNano())
func randInt() []int {
cnt := len(nameItems)
r := make([]int, 0)
for i := 0; i < cnt; i++ {
r = append(r, int(seed.Int63()) % 50)
}
return r
}
func handler(w http.ResponseWriter, _ *http.Request) {
bar := charts.NewBar()
bar.SetGlobalOptions(charts.TitleOpts{Title: "Bar-示例图"}, charts.ToolboxOpts{Show: true})
bar.AddXAxis(nameItems).
AddYAxis("商家A", randInt()).
AddYAxis("商家B", randInt())
f, err := os.Create("bar.html")
if err != nil {
log.Println(err)
}
bar.Render(w, f) // Render 可接收多个 io.Writer 接口
}
func main() {
http.HandleFunc("/", handler)
http.HandleFunc("/geo", geo.GeoHandler)
http.HandleFunc("/heatMap", heatMap.HeatMapHandler)
http.HandleFunc("/page", page.PagHandler)
http.HandleFunc("/gauge", gauge.GaugeHandler)
http.ListenAndServe(":8081", nil)
}
github.com/xiazemin/echart