java版echarts图表库echarts-mile米乐体育
本文由码农网 – 小峰原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!
echarts-java项目简介
echarts是一款功能非常强大的javascript图表库,echarts-java是echarts的java版,用java代码实现了echarts的所有图表功能,echarts中的json结构也都转换成了java对象,这样我们使用起来会非常方便,设置也相当灵活。
本项目是一个供java开发使用的echarts的开发包,主要目的是方便在java中构造echarts中可能用到的全部数据结构,如完整的结构 option。option中的数据series,包含bar-柱状图,line-折线图,pie-饼图,chord-和弦图等,支持echarts中的 所有图表。支持所有的style类,如areastyle,chordstyle,itemstyle,linestyle,linkstyle等等。支 持多种data数据类型,一个通用的data数据,以及piedata,mapdata,scatterdata,kdata等针对性的数据结构。
你可以使用本项目直接构造一个option
对象,转换为json后直接用js设置mychart.setoption(option)
,或者你也可以在前段构造基本的option
对象,然后使用本项目来构造其中需要的任意某部分的数据,如使用series
支持的图表类型创建series
数据。
项目支持
图表类型
- line – 折线(面积)图
- bar – 柱状(条形)图
- scatter – 散点(气泡)图
- k – k线图
- pie – 饼(圆环)图
- radar – 雷达(面积)图
- chord – 和弦图
- force – 力导向布局图
- map – 地图
- gauge – 仪表盘
- funnel – 漏斗图
- island – 孤岛图(官方未提供,这里只有数据island对象)
echarts组件
- axis – 坐标轴
- grid – 网格
- title – 标题
- tooltip – 提示
- legend – 图例
- datazoom – 数据区域缩放
- datarange – 值域漫游
- toolbox – 工具箱
- timeline – 时间线
option说明
option
正式代码中使用,不需要任何依赖。gsonoption
正式代码中可以使用,需要引入gson
包,使用tostring()
方法可以转换为json结构的数据(支持function
,详情看下面的function说明)。enhancedoption
测试专用,主要方便在浏览器中直接查看效果。
function说明
由于json标准中不包含function
类型,因而大多数的json库都不直接支持这种类型,处理这种类型最简单的方式就是转换为json字符串时,对字符串进行处理。
虽然像jackson json和fastjson通过注解或者自定义的实现序列化接口可以实现,毕竟和json库的结合太密切了,而且使用起来也很麻烦,不如直接处理字符串,或者在js中处理。
本项目中提供了gson实现的gsonoption
,就是重写了tostring()
方法,改为输出json结构的字符串,并且支持以下两种function
形式:
{
formatter:function(value){
return value.substring(0,8);
}}//和{
formatter:(function(){
return ‘temperature :
{b}km : {c}°c’;
})()}
当然这种形式在java中书写的时候有着严格的要求:
option.tooltip().trigger(trigger.axis).formatter(“function(value){return value.substring(0,8);}”);option.tooltip().trigger(trigger.axis).formatter(“(function(){return ‘temperature :
{b}km : {c}°c’;})()”);
- 先看第一种,这里的
"function
中,双引号和function
必须连着,中间不能存在空格,否则不会识别。然后是结尾的}"
,这里也必须连着不能有空格,在首尾这两段代码之间不能出现}"
,否则会判断出错。如果在{}
中的代码有字符串,请使用单引号'
,双引号出现在单引号内时使用\"
即可。除此之外没有别的限制。 - 再看第二种,这里的
"(function
中,双引号、括号和function
必须连着,中间不能存在空格,否则不会识别。然后是结尾的})()"
,这里也必须连着不能有空格,在首尾这两段代码之间不能出现})()"
,否则会判断出错。如果在{}
中的代码有字符串,请使用单引号'
,双引号出现在单引号内时使用\"
即可。除此之外没有别的限制。
上述对function
的处理很简单,不限制在formatter
使用,所有值都能这么写,你可以参考写出自己的option
echarts-java的简单使用
@testpublic void test() {
//地址:http://echarts.baidu.com/doc/example/line5.html
enhancedoption option = new enhancedoption();
option.legend(“高度(km)与气温(°c)变化关系”);option.toolbox().show(true).feature(tool.mark, tool.dataview, new magictype(magic.line, magic.bar), tool.restore, tool.saveasimage);
option.calculable(true);
option.tooltip().trigger(trigger.axis).formatter(“temperature :
{b}km : {c}°c”);valueaxis valueaxis = new valueaxis();
valueaxis.axislabel().formatter(“{value} °c”);
option.xaxis(valueaxis);categoryaxis categoryaxis = new categoryaxis();
categoryaxis.axisline().onzero(false);
categoryaxis.axislabel().formatter(“{value} km”);
categoryaxis.boundarygap(false);
categoryaxis.data(0, 10, 20, 30, 40, 50, 60, 70, 80);
option.yaxis(categoryaxis);line line = new line();
line.smooth(true).name(“高度(km)与气温(°c)变化关系”).data(15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5).itemstyle().normal().linestyle().shadowcolor(“rgba(0,0,0,0.4)”);
option.series(line);
option.exporttohtml(“line5.html”);
option.view();}
代码生成的json结果:
{ "calculable": true, "toolbox": { "show": true, "feature": { "restore": { "show": true, "title": "还原" }, "magictype": { "show": true, "title": { "line": "折线图切换", "stack": "堆积", "bar": "柱形图切换", "tiled": "平铺" }, "type": ["line", "bar"] }, "dataview": { "show": true, "title": "数据视图", "readonly": false, "lang": ["data view", "close", "refresh"] }, "mark": { "show": true, "title": { "mark": "辅助线开关", "markclear": "清空辅助线", "markundo": "删除辅助线" }, "linestyle": { "color": "#1e90ff", "type": "dashed", "width": 2 } }, "saveasimage": { "show": true, "title": "保存为图片", "type": "png", "lang": ["点击保存"] } } }, "tooltip": { "trigger": "axis", "formatter": "temperature : \u003cbr/\u003e{b}km : {c}°c" }, "legend": { "data": ["高度(km)与气温(°c)变化关系"] }, "xaxis": [{ "type": "value", "axislabel": { "formatter": "{value} °c" } }], "yaxis": [{ "type": "category", "boundarygap": false, "axisline": { "onzero": false }, "axislabel": { "formatter": "{value} km" }, "data": [ 0, 10, 20, 30, 40, 50, 60, 70, 80 ] }], "series": [{ "smooth": true, "name": "高度(km)与气温(°c)变化关系", "type": "line", "itemstyle": { "normal": { "linestyle": { "shadowcolor": "rgba(0,0,0,0.4)" } }, "emphasis": {} }, "data": [ 15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5 ] }]}
软件mile米乐体育首页 软件文档 软件下载
本文链接:http://www.codeceo.com/article/echarts-java.html
本文作者:码农网 – 小峰
[ 原创作品,转载必须在正文中标注并保留原文链接和作者等信息。]