Echars封装类调用文档支持图表类型Line-折线(面积)图Bar-柱状(条形)图Scatter-散点(气泡)图K-K线图Pie-饼(圆环)图Radar-雷达(面积)图Chord-和弦图Force-力导向布局图Map-地图Gauge-仪表盘Funnel-漏斗图Island-孤岛图(官方未提供,这里只有数据Island对象)EventRiver-事件河流图Venn-韦恩图Tree-树图Treemap-矩形树图WordCloud-词云Heatmap-热力图ECharts组件Axis-坐标轴Grid-网格Title-标题Tooltip-提示Legend-图例DataZoom-数据区域缩放DataRange-值域漫游Toolbox-工具箱Timeline-时间线由于JSON标准中不包含function类型,因而大多数的JSON库都不直接支持这种类型,处理这种类型最简单的方式就是转换为JSON字符串时,对字符串进行处理。虽然像jacksonjson和fastjson通过注解或者自定义的实现序列化接口可以实现,毕竟和JSON库的结合太密切了,而且使用起来也很麻烦,不如直接处理字符串,或者在js中处理。本项目中提供了GSON实现的GsonOption,就是重写了toString()方法,改为输出JSON结构的字符串,并且支持以下两种function形式:?1234567{formatter:function(value){returnvalue.substring(0,8);}}//和{formatter:(function(){return'Temperature:br/{b}km:{c}°C';})()}当然这种形式在Java中书写的时候有着严格的要求:先看第一种,这里的function中,双引号和function必须连着,中间不能存在空格,否则不会识别。然后是结尾的},这里也必须连着不能有空格,在首尾这两段代码之间不能出现},否则会判断出错。如果在{}中的代码有字符串,请使用单引号',双引号出现在单引号内时使用\即可。除此之外没有别的限制。再看第二种,这里的(function中,双引号、括号和function必须连着,中间不能存在空格,否则不会识别。然后是结尾的})(),这里也必须连着不能有空格,在首尾这两段代码之间不能出现})(),否则会判断出错。如果在{}中的代码有字符串,请使用单引号',双引号出现在单引号内时使用\即可。除此之外没有别的限制。上述对function的处理很简单,不限制在formatter使用,所有值都能这么写,你可以参考写出自己的Option挑两个例子大概的看看这个Java类库如何使用第一个例子,简单的折线图对应的ECharts例子地址:测试代码地址:LineTest5.java?12345678910111213141516171819@Testpublicvoidtest(){//地址:=newEnhancedOption();option.legend(高度(km)与气温(°C)变化关系);option.toolbox().show(true).feature(Tool.mark,Tool.dataView,newMagicType(Magic.line,Magic.bar),Tool.restore,Tool.saveAsImage);option.calculable(true);option.tooltip().trigger(Trigger.axis).formatter(Temperature:br/{b}km:{c}°C);ValueAxisvalueAxis=newValueAxis();valueAxis.axisLabel().formatter({value}°C);option.xAxis(valueAxis);CategoryAxiscategoryAxis=newCategoryAxis();categoryAxis.axisLine().onZero(false);categoryAxis.axisLabel().formatter({value}km);categoryAxis.boundaryGap(false);20212223242526categoryAxis.data(0,10,20,30,40,50,60,70,80);option.yAxis(categoryAxis);Lineline=newLine();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结果:?123456789101112131415161718{calculable:true,toolbox:{show:true,feature:{restore:{show:true,title:还原},magicType:{show:true,title:{line:折线图切换,stack:堆积,bar:柱形图切换,tiled:平铺1920212223242526272829303132333435363738394041424344454647},type:[line,bar]},dataView:{show:true,title:数据视图,readOnly:false,lang:[DataView,close,refresh]},mark:{show:true,title:{mark:辅助线开关,markClear:清空辅助线,markUndo:删除辅助线},lineStyle:{color:#1e90ff,type:dashed,width:2}},saveAsImage:{show:true,title:保存为图片,type:png,lang:[点击保存]4849505152535455565758596061626364656667686970717273747576}}},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,80777879808182838485868788]}],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]}]}第二个例子,使用(function(){})()执行JS代码对应的ECharts例子地址:测试代码地址:PieTest6.java?1234@Testpublicvoidtest(){//地址:=newItemStyle();dataStyle.normal().label(newLabel().show(false)).labelLine().show(false);56789101112131415161718192021222324252627282930313233ItemStyleplaceHolderStyle=newItemStyle();placeHolderStyle.normal().color(rgba(0,0,0,0)).label(newLabel().show(false)).labelLine().show(false);placeHolderStyle.emphasis().color(rgba(0,0,0,0));EnhancedOptionoption=newEnhancedOption();option.title().text(你幸福吗?).subtext(FromExcelHome).sublink().x(X.center).y(Y.center).itemGap(20).textStyle().color(rgba(30,144,255,0.8)).fontFamily(微软雅黑).fontSize(35).fontWeight(bolder);option.tooltip().show(true).formatter({a}br/{b}:{c}({d}%));option.legend().orient(Orient.vertical).x((function(){returndocument.getElementById('main').offsetWidth/2;})()).y(56).itemGap(12).data(68%的人表示过的不错,29%的人表示生活压力很大,3%的人表示“我姓曾”);option.toolbox().show(true).feature(Tool.mark,Tool.dataView,Tool.restore,Tool.saveAsImage);Piep1=newPie(1);p1.clockWise(false).radius(125,150).itemStyle(dataStyle).data(newData(68%的人表示过的不错34353637383940414243,68),newData(invisible,32).itemStyle(placeHolderStyle));Piep2=newPie(2);p2.clockWise(false).radius(100,125).itemStyle(dataStyle).data(newData(29%的人表示生活压力很大,29),newData(invisible,71).itemStyle(placeHolderStyle));Piep3=newPie(3);p3.clockWise(false).radius(75,100).itemStyle(dataStyle).data(newData(3%的人表示“我姓曾”,3),newData(invisible,97).itemStyle(placeHolderStyle));option.series(p1,p2,p3);option.exportToHtml(pie6.html);option.view();}这段代码注意?1.x