go-charts基于 go-chart 生成数据图表
go-charts
基于 go-chart 生成数据图表,无其它模块的依赖纯golang的实现,支持svg
与png
的输出,Apache ECharts
在前端开发中得到众多开发者的认可,go-charts
兼容Apache ECharts
的配置参数,简单快捷的生成相似的图表(svg
或png
),方便插入至Email或分享使用。下面为常用的几种图表截图(黑夜模式):
支持图表类型
暂仅支持三种的图表类型:line
, bar
以及 pie
示例
go-charts
兼容了echarts
的参数配置,可简单的使用json形式的配置字符串则可快速生成图表。
package main import ( "os" charts "github.com/vicanso/go-charts" ) func main() { buf, err := charts.RenderEChartsToPNG(`{ "title": { "text": "Line" }, "xAxis": { "type": "category", "data": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] }, "series": [ { "data": [150, 230, 224, 218, 135, 147, 260] } ] }`) if err != nil { panic(err) } os.WriteFile("output.png", buf, 0600) }
性能
简单的图表生成PNG在20ms左右,而SVG的性能则更快,性能上比起使用chrome headless
加载echarts
图表展示页面,截图生成的方式大幅度提升,基本能满足简单的图表生成需求。
goos: darwin goarch: amd64 pkg: github.com/vicanso/go-charts cpu: Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz BenchmarkEChartsRenderPNG-8 60 17765045 ns/op 2492854 B/op 1007 allocs/op BenchmarkEChartsRenderSVG-8 282 4303042 ns/op 32622688 B/op 2983 allocs/op
体验地址
可直接在此演示地址中尝试:https://charts.npmtrend.com/ ,复制echarts的配置点击运行即可
评论