ECharts Java——实现数据可视化的绝佳工具
- 编程知识
- 2023-05-26
- 9
一、开源库概述
ECharts是一个开源的,基于JavaScript的数据可视化库。该库具有可定制、交互丰富、易于维护的特点。由于其开放源代码的特性,ECharts已被广泛应用于各种领域,包括了数据报表、BI、数据分析等。ECharts Java是一个面向Java后端的解决方案,可以实现将后端业务数据快速呈现在前端图表上的效果。
二、快速上手
ECharts Java的快速上手十分简单。只需要加入对应的Jar包,并将相关接口植入即可。
// 导入Jar包 <dependency> <groupId>com.github.abel533</groupId> <artifactId>echarts-java</artifactId> <version>2.0.0</version> </dependency> // 初始化 ECharts echarts = new ECharts(); echarts.setOption(option);
其中option即为图表的显示选项配置。可以通过该配置实现图表的个性化设置。
三、基础图表类型
ECharts Java支持多种基础图表类型,如折线图、柱状图、饼图、散点图等。
1.折线图
折线图是一种将折线与数据点连接形成的图表,用于显示一段时间范围内的数据变化轨迹。
option = new Option(); option.title(new Title().text("折线图示例")); option.xAxis(new CategoryAxis().data("星期一","星期二","星期三","星期四","星期五","星期六","星期日")); option.yAxis(new ValueAxis()); Line line = new Line("折线"); line.data(10, 20, 30, 40, 50, 60, 70); option.series(line);
2.柱状图
柱状图是一种通过柱状的高度来比较数据大小的图表。
option = new Option(); option.title(new Title().text("柱状图示例")); option.xAxis(new CategoryAxis().data("蒸发量","降水量","平均温度")); option.yAxis(new ValueAxis()); Bar bar1 = new Bar("蒸发量"); bar1.data(2.0, 4.9, 7.0); Bar bar2 = new Bar("降水量"); bar2.data(2.6, 5.9, 9.0); option.series(bar1, bar2);
3.饼图
饼图是一种通过圆形的扇形来表现数据占比的图表。
option = new Option(); option.title(new Title().text("饼图示例")); option.legend(new Legend().data("数据1","数据2","数据3","数据4","数据5")); Pie pie = new Pie("饼图"); pie.data(new PieData(335,"数据1"),new PieData(310,"数据2"),new PieData(234,"数据3"),new PieData(135,"数据4"),new PieData(1548,"数据5")); option.series(pie);
4.散点图
散点图是一种通过点的位置来显示两个维度之间的数据关系的图表。
option = new Option(); option.title(new Title().text("散点图示例")); option.legend(new Legend().data("数据1")); option.xAxis(new ValueAxis()); option.yAxis(new ValueAxis()); Scatter scatter = new Scatter("散点图"); scatter.data(new ScatterData(10, 10), new ScatterData(20, 20), new ScatterData(30, 30), new ScatterData(40, 40), new ScatterData(50, 50)); option.series(scatter);
四、高级特性
ECharts Java还提供了多种高级特性,如时间轴、地图、维恩图、雷达图等。
1.时间轴
时间轴可以在一个图表上展示不同时间段的数据,帮助用户更清晰地观察数据变化。
option = new Option(); option.title(new Title().text("时间轴示例")); option.timeline(new Timeline().autoPlay(true).setData("2002","2003","2004","2005","2006","2007")); option.xAxis(new CategoryAxis().data("衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子")); option.yAxis(new ValueAxis()); Line line1 = new Line("数据1"); line1.data(10, 20, 30, 40, 50, 60); Line line2 = new Line("数据2"); line2.data(15, 25, 35, 45, 55, 65); option.series(line1, line2);
2.地图
地图可以将数据绘制在地图上,更直观地显示全球和国内的数据分布。
option = new Option(); option.title(new Title().text("地图示例")); option.tooltip(new Tooltip().trigger(TriggerItem.item).formatter("{b}:{c}")); option.series(new Map("地图示例").mapType(MapType.china)); // 此处省略设置数据的代码
3.维恩图
维恩图可以将多个维度的数据在同一个图表上进行比较。通过对圆环的比例进行调整,可以更直观地展示不同维度的数据对比。
option = new Option(); option.title(new Title().text("维恩图示例")); option.legend(new Legend("维恩图").data("数据1","数据2","数据3")); Listcenter = new ArrayList<>(); center.add("25%"); center.add("50%"); option.series(new Venn("维恩图").itemStyle(new ItemStyle().normal(new Label().show(true).formatter("{b}"))).data(new VennData("数据1", 100),new VennData("数据2", 100),new VennData("数据3", 100)).center(center).radius(new String[]{"20%","40%"}));
4.雷达图
雷达图可以直观地展现出多个指标间的差别和对比,同时也可以展示出数据的周期性变化或趋势。
option = new Option(); option.title(new Title().text("雷达图示例")); option.tooltip(new Tooltip().trigger(Trigger.axis)); option.legend().data("数据1","数据2"); option.polar(new Polar().center(new String[]{"50%","54%"}).radius("60%")); option.calculable(true); option.radiusAxis(new RadiusAxis().splitNumber(8)); option.angleAxis(new AngleAxis().max(360).startAngle(0).splitNumber(8)); RadarData data1 = new RadarData("数据1", new Double[]{5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 5.0, 6.0}); RadarData data2 = new RadarData("数据2", new Double[]{2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 2.0, 3.0}); option.series(new Radar("雷达图").data(data1, data2));
五、总结
本篇文章从开源库概述、快速上手、基础图表类型、高级特性等方面对ECharts Java做了详细阐述。通过各种图表类型以及时间轴、地图、维恩图、雷达图等高级特性的介绍,相信读者们都对ECharts Java有了更深入地了解。希望通过ECharts Java,开发人员们能够更轻松地实现数据展示和数据分析的需求。