ECharts - Java类库使用
2017-04-06 00:00
375 查看
构建区域数据echart有两种实现方案
1. 在前台写大量的javascript,然后把变量通过ajax或者遍历集合的方式插进去生成图表。
2.通过echart-java库构建后台处理数据对象,然后ajax交互生成图表。
优缺点分析
a.通过javascipt构建区域数据报表,主要工作在前端写javascript开发难度不大,根据官方提供案例很快上手,但这样子一旦某一页面的图表一多,就会异常混乱,且大量javascript不太容易维护。
b.ehcart-java 构建区域数据报表,主要在后端处理组装数据,需要对java core 比较熟悉开发方便,便于做成相应组件提供给其它服务使用,前端通过ajax交互,但开发相对慢点。
echart-java 库构建区域数据报表
1.ehcart-java 是开源项目,可以从com.github.abel533获取以及相应javadoc文档
2.构建Map
1.在后台进行完美封装传回一个option在前台接收了并set进option即可。API调用demo。
public String initMap (HttpServletRequest request) {
//Map<String,Long> dataMap = new IdentityHashMap<String,Long>();
List<AreaVisitEntity> list = new ArrayList<AreaVisitEntity>();
Option option = new GsonOption();//此处需要用GsonOption
EMap map = new EMap("PV");
option.title().text("O2O电商平台区域访问量").textAlign(X.left);
option.title().left("center");
option.tooltip().trigger(Trigger.item);
option.legend().orient(Orient.vertical).left("left");
option.legend().data(new Object[]{"PV","UV"}); //这里待优化,动态获取
map.mapLocation(new MapLocation(X.left, Y.top, 600));
map.selectedMode(SelectedMode.single);
map.itemStyle().normal().borderWidth(2).borderColor("skyblue").color("orange").label().show(true);
map.itemStyle().emphasis().borderWidth(2).borderColor("#fff").color("#32cd32").label().show(true).textStyle().color("#fff");
list = (List<AreaVisitEntity>) areaVisitService.getAreaVisits();
Data data = null;
if (null!= list&&!list.isEmpty()) {
for (AreaVisitEntity areaVisits : list) {
data = new Data(areaVisits.getRegionAlias(),areaVisits.getPv());
//modelMap.put(areaVisits.getRegionAlias(), list.get(1).getPv());
data.itemStyle().normal().color("#32cd32").label().show(true).textStyle().color("#fff").fontSize(15);
data.itemStyle().emphasis().borderColor("yellow").color("#cd5c5c").label().show(false).textStyle().color("blue");
//map.markPoint().itemStyle().normal().color("skyblue");
map.data(data);
}
}
option.animation(true);
option.series(map);
JSONObject jsonObj = JSONObject.fromObject(option.toString()); //需要转成json否则绘图不成功
return jsonObj.toString();
}
2.页面进行交互以及渲染图表(注意红色部分顺序,否则绘图不成功)
<div class="easyui-layout" fit="true">
<div region="center" style="padding: 1px;"></div>
<div id="main" style="float:left;height:500px;width:620px;padding:0px;"></div>
<script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script>
<script type="text/javascript" src="plug-in/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//初始化图表
function drawEChart (){
var myChart = echarts.init(document.getElementById('main'));
myChart.showLoading({text: '图表数据正在努力加载...',});
$.ajax({
type : 'post',
url : 'areaVisitController.do?initMap',
dataType: 'json',
success : function(data){
//注意此处需要这样解析提取数据,否则会出错,具体有待研究
var data = eval("("+data+")");
myChart.setOption(data);
myChart.hideLoading();
},
error : function (errMsg){
alert("图表请求数据失败,请稍后重新刷新!");
}
});
}
//init
$(function(){
drawEChart();
});
</script>
</div>
1. 在前台写大量的javascript,然后把变量通过ajax或者遍历集合的方式插进去生成图表。
2.通过echart-java库构建后台处理数据对象,然后ajax交互生成图表。
优缺点分析
a.通过javascipt构建区域数据报表,主要工作在前端写javascript开发难度不大,根据官方提供案例很快上手,但这样子一旦某一页面的图表一多,就会异常混乱,且大量javascript不太容易维护。
b.ehcart-java 构建区域数据报表,主要在后端处理组装数据,需要对java core 比较熟悉开发方便,便于做成相应组件提供给其它服务使用,前端通过ajax交互,但开发相对慢点。
echart-java 库构建区域数据报表
1.ehcart-java 是开源项目,可以从com.github.abel533获取以及相应javadoc文档
2.构建Map
1.在后台进行完美封装传回一个option在前台接收了并set进option即可。API调用demo。
public String initMap (HttpServletRequest request) {
//Map<String,Long> dataMap = new IdentityHashMap<String,Long>();
List<AreaVisitEntity> list = new ArrayList<AreaVisitEntity>();
Option option = new GsonOption();//此处需要用GsonOption
EMap map = new EMap("PV");
option.title().text("O2O电商平台区域访问量").textAlign(X.left);
option.title().left("center");
option.tooltip().trigger(Trigger.item);
option.legend().orient(Orient.vertical).left("left");
option.legend().data(new Object[]{"PV","UV"}); //这里待优化,动态获取
map.mapLocation(new MapLocation(X.left, Y.top, 600));
map.selectedMode(SelectedMode.single);
map.itemStyle().normal().borderWidth(2).borderColor("skyblue").color("orange").label().show(true);
map.itemStyle().emphasis().borderWidth(2).borderColor("#fff").color("#32cd32").label().show(true).textStyle().color("#fff");
list = (List<AreaVisitEntity>) areaVisitService.getAreaVisits();
Data data = null;
if (null!= list&&!list.isEmpty()) {
for (AreaVisitEntity areaVisits : list) {
data = new Data(areaVisits.getRegionAlias(),areaVisits.getPv());
//modelMap.put(areaVisits.getRegionAlias(), list.get(1).getPv());
data.itemStyle().normal().color("#32cd32").label().show(true).textStyle().color("#fff").fontSize(15);
data.itemStyle().emphasis().borderColor("yellow").color("#cd5c5c").label().show(false).textStyle().color("blue");
//map.markPoint().itemStyle().normal().color("skyblue");
map.data(data);
}
}
option.animation(true);
option.series(map);
JSONObject jsonObj = JSONObject.fromObject(option.toString()); //需要转成json否则绘图不成功
return jsonObj.toString();
}
2.页面进行交互以及渲染图表(注意红色部分顺序,否则绘图不成功)
<div class="easyui-layout" fit="true">
<div region="center" style="padding: 1px;"></div>
<div id="main" style="float:left;height:500px;width:620px;padding:0px;"></div>
<script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script>
<script type="text/javascript" src="plug-in/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//初始化图表
function drawEChart (){
var myChart = echarts.init(document.getElementById('main'));
myChart.showLoading({text: '图表数据正在努力加载...',});
$.ajax({
type : 'post',
url : 'areaVisitController.do?initMap',
dataType: 'json',
success : function(data){
//注意此处需要这样解析提取数据,否则会出错,具体有待研究
var data = eval("("+data+")");
myChart.setOption(data);
myChart.hideLoading();
},
error : function (errMsg){
alert("图表请求数据失败,请稍后重新刷新!");
}
});
}
//init
$(function(){
drawEChart();
});
</script>
</div>
相关文章推荐
- Felomeng翻译:IKVM的使用——将java程序转化为.net程序或类库
- 一滴水:关于Java容器类库概念及Map.put();方法的使用
- java并发编程 之 常用并发类库使用举例
- 【JAVA】java图片处理类库Thumbnails使用教程,图片缩放、裁剪、旋转、压缩
- java 线程 新类库中的构件 CyclicBarrier使用
- Java常用类库——Arrays类(用于普通数组操作)、比较器(Comparable、Comparator 用于对象排序)的使用
- 讲解Java中的基础类库和语言包的使用
- Java智能图表类库JChartLib使用介绍
- JAVA使用类库对数组和各种Collection容器进行排序
- Java 压缩类库的使用
- Java类库中File类的renameTo()方法使用说明
- Github最流行的10,000个Java项目使用的类库
- 使用Java类库:Date类
- Java中如何封装自己的类,建立并使用自己的类库?
- Java压缩类库的使用-3.Apache Ant中的打包、压缩类库
- Java中如何封装自己的类,建立并使用自己的类库?
- 使用PHP调用功能强大的JAVA 类库
- Java中如何封装自己的类,建立并使用自己的类库?
- Java中基础类库使用
- java使用现有的类库的排序方法