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的配置点击运行即可
评论
