go-charts 0.0. 3版本发布,兼容更多的 echarts 配置
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) }
参数说明
theme
颜色主题,支持dark
与light
模式,默认为light
padding
图表的内边距,单位px。支持以下几种模式的设置padding: 5
设置内边距为5padding: [5, 10]
设置上下的内边距为 5,左右的内边距为 10padding:[5, 10, 5, 10]
分别设置上右下左
边距
title
图表标题,包括标题内容、高度、颜色等title.text
标题内容title.left
标题与容器左侧的距离,可设置为left
,right
,center
,20%
以及20
这样的具体数值title.top
标题与容器顶部的距离,暂仅支持具体数值,如20
title.textStyle.color
标题文字颜色title.textStyle.fontSize
标题文字字体大小title.textStyle.height
标题高度title.textStyle.fontFamily
标题文字的字体系列,需要注意此配置是会影响整个图表的字体
xAxis
直角坐标系grid中的x轴,由于go-charts仅支持单一个x轴,因此若参数为数组多个x轴,只使用第一个配置xAxis.boundaryGap
坐标轴两边留白策略,仅支持三种设置方式null
,true
或者false
。null
或true
时则数据点展示在两个刻度中间xAxis.splitNumber
坐标轴的分割段数,需要注意的是这个分割段数只是个预估值,最后实际显示的段数会在这个基础上根据分割后坐标轴刻度显示的易读程度作调整xAxis.data
x轴的展示文案,暂只支持字符串数组,如["Mon", "Tue"],其数量需要与展示点一致
yAxis
直角坐标系grid中的y轴,最多支持两个y轴yAxis.min
坐标轴刻度最小值,若不设置则自动计算yAxis.max
坐标轴刻度最大值,若不设置则自动计算yAxis.axisLabel.formatter
刻度标签的内容格式器,如"formatter": "{value} kg"
legend
图表中不同系列的标记legend.data
图例的数据数组,为字符串数组,如["Email", "Video Ads"]legend.align
图例标记和文本的对齐,默认为标记靠左left
legend.padding
legend的padding,配置方式与图表的padding
一致legend.left
legend离容器左侧的距离,其值可以为具体的像素值(20)或百分比(20%)legend.right
legend离容器右侧的距离,其值可以为具体的像素值(20)或百分比(20%)
series
图表的数据项列表series.type
图表的展示类型,暂支持line
,bar
以及pie
,需要注意pie
只能单独使用series.yAxisIndex
该数据项使用的y轴,默认为0,对yAxis的配置对应series.itemStyle.color
该数据项展示时使用的颜色series.data
数据项对应的数据数组,支持以下形式的数据:数值
常用形式,数组数据为浮点数组,如[1.1, 2,3, 5.2]结构体
pie图表或bar图表中指定样式使用,如[{"value": 1048, "name": "Search Engine"},{"value": 735,"name": "Direct"}]
性能
简单的图表生成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
中文字符
默认使用的字符为Roboto
为英文字体库,因此如果需要显示中文字符需要增加中文字体库,InstallFont
函数可添加对应的字体库,成功添加之后则指定title.textStyle.fontFamily
即可。 在浏览器中使用svg
时,如果指定的fontFamily
不支持中文字符,展示的中文并不会乱码,但是会导致在计算字符宽度等错误。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CISA已发布Apache Log4j漏洞扫描器
在Log4shell漏洞曝光之后,美国网络安全与基础设施局(CISA)一直在密切关注事态发展。除了敦促联邦机构在圣诞假期之前完成修补,国防部下属的该机构还发起了#HackDHS漏洞赏金计划。最新消息是,CISA 又推出了一款名叫log4j-scanner的漏洞扫描器,以帮助各机构筛查易受攻击的web服务。 据悉,作为CISA快速行动小组与开源社区团队的一个衍生项目,log4j-scanner能够对易受两个Apache远程代码执行漏洞影响的Web服务进行识别(分别是CVE-2021-44228和CVE-2021-45046)。 这套扫描解决方案建立在类似的工具之上,包括由网络安全公司FullHunt开发的针对CVE-2021-44228漏洞的自动扫描框架。有需要的安全团队,可借助该工具对网络主机进行扫描,以查找Log4j RCE暴露和让Web应用程序绕过防火墙(WAF)的潜在威胁。 目前该项目在Github已经获得了814星标。
- 下一篇
云办公系统 skyeye v3.7.1 发布,工作流会签完成
项目介绍 智能办公 OA 系统[SpringBoot2-快速开发平台],适用于医院,学校,中小型企业等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模块、动态表单、知识库、公告模块、企业论坛、云售后模块、生产模块、系统模块化同步模块等多种复杂业务功能。 云办公系统 skyeye v3.7.1发布,更新内容: US: 新增工作流会签功能 会签支持并行加减签和串行加减签 并行会签支持必选评审人的设定 串行会签支持先后顺序的调整 支持会签完之后回到主持人加评的功能 新增会签加减签历史记录功能 FIX: log4j升级到2.17.0 解决前后加签时,不选择用户报错的问题 企业版改进计划,改进计划优惠多多哦。详情 erp:https://gitee.com/doc_wei01/erp-pro OA:https://gitee.com/doc_wei01/skyeye 报表:https://gitee.com/doc_wei01/skyeye-report 企业版信息:https://docs.qq...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker快速安装Oracle11G,搭建oracle11g学习环境