golang 每日一庫之 go-echarts
go-echarts/go-echarts
是一個用 Go 編寫的現代圖表庫,提供了一整套易用的 API 來生成基於 Apache ECharts 的交互式圖表,適合用於數據可視化儀表盤、報表服務、網頁嵌入等應用場景。
簡介
-
GitHub: https://github.com/go-echarts/go-echarts
-
Stars: 6k+
-
License:MIT
-
基於:Apache ECharts(圖形渲染由 ECharts JS 完成)
-
輸出格式:HTML + JS,可在瀏覽器中交互式查看圖表
特點
-
豐富圖表類型(柱狀圖、折線圖、餅圖、地圖等)
-
可嵌入 HTML 頁面,或導出爲獨立 HTML 文件
-
支持多個圖表組合(多圖聯動)
-
原生 Go 編寫,接口風格 Go 風格清晰
支持圖表類型
安裝方法
go get -u github.com/go-echarts/go-echarts/v2
示例
柱狀圖 Bar
package main
import (
"os"
"github.com/go-echarts/go-echarts/v2/charts"
"github.com/go-echarts/go-echarts/v2/opts"
)
func main() {
bar := charts.NewBar()
bar.SetGlobalOptions(opts.Title{Title: "Bar 示例"})
bar.SetXAxis([]string{"蘋果", "香蕉", "橘子"}).
AddSeries("銷量", []opts.BarData{
{Value: 10}, {Value: 20}, {Value: 30},
})
f, _ := os.Create("bar.html")
defer f.Close()
bar.Render(f)
}
折線圖 Line
line := charts.NewLine()
line.SetGlobalOptions(opts.Title{Title: "Line 折線圖"})
line.SetXAxis([]string{"1月", "2月", "3月", "4月"}).
AddSeries("銷售額", []opts.LineData{
{Value: 500}, {Value: 800}, {Value: 600}, {Value: 900},
})
line.Render(f)
餅圖 Pie
gauge := charts.NewGauge()
gauge.SetGlobalOptions(opts.Title{Title: "Gauge 儀表盤"})
gauge.AddSeries("速度", []opts.GaugeData{
{Name: "運行速度", Value: 82},
})
gauge.Render(f)
儀表盤 Gauge
gauge := charts.NewGauge()
gauge.SetGlobalOptions(opts.Title{Title: "Gauge 儀表盤"})
gauge.AddSeries("速度", []opts.GaugeData{
{Name: "運行速度", Value: 82},
})
gauge.Render(f)
地圖 Map(中國)
import "github.com/go-echarts/go-echarts/v2/opts"
import "github.com/go-echarts/go-echarts/v2/components"
import "github.com/go-echarts/go-echarts/v2/maps"
m := charts.NewMap("china")
m.SetGlobalOptions(opts.Title{Title: "中國地圖"})
m.AddSeries("省份數據", []opts.MapData{
{Name: "廣東", Value: 100},
{Name: "北京", Value: 200},
})
m.Render(f)
多圖聯動
可以用 components.NewPage()
組合多個圖表爲一個頁面:
page := components.NewPage()
page.AddCharts(bar, line, pie)
page.Render(f)
自定義主題
通過 SetChartTheme()
設置 dark
, shine
, vintage
等主題:
bar := charts.NewBar()
bar.SetChartTheme(charts.ThemeDark)
最後總結一下特點
標題:golang 每日一庫之 go-echarts
作者:mooncakeee
地址:http://blog.dd95828.com/articles/2025/06/17/1750123847049.html
聯繫:scotttu@163.com
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/7vKiab1Kw-MyC7O4ONtQlQ