做好echarts之后,又重构了一下过程,转换为数据简单的转换工具,方便以后查阅。
解释下需要用到的参数(例子,统计每个月份的销售额):
List<DataVo> dataVoList,
DataVo实体类包括:name,sum;
name为统计的名称;这个name有多少记录。
例子:name是月份(‘1月,2月。。。’),sum为销售额
String name,
这个echarts图的每一组数据的名字;
例子:统计这个销售额的图叫什么名字。
String type,
什么类型的图,如‘bar’,‘line’
boolean hasAverage
‘是否显示平均值’
public class EchartsUtil {
/**
* 获得一组series,即一组数据
* @param dataVoList//查询的数据,DataVo格式的
* @param name//统计图表的名字
* @param type//统计图表的类型(bar 柱状图,line 折线图)
* @param lengend//每组数据的标题
* @return
*/
public static EchartsVo FormatEchartsData(List<DataVo> dataVoList,String name,String type,boolean hasAverage){
List<String> lengendList = new ArrayList<String>();
lengendList.add(name);
List<String> xAxis = new ArrayList<String>();
List<Series> seriesList = new ArrayList<Series>();
List<Double> dataList = new ArrayList<Double>();
Series series = new Series();
for(DataVo vo :dataVoList){
xAxis.add(vo.getName());
dataList.add(vo.getSum());
}
series.setName(name);
series.setType(type);
series.setData(dataList);
seriesList.add(series);
/**
* 设置平均值
*/
if(hasAverage){
MarkLine markLine = new MarkLine();
List<Data> markDataList = new ArrayList<Data>();
Data data = new Data();
data.setType("average");
data.setName("同比报警平均值");
markDataList.add(data);
markLine.setData(markDataList);
series.setMarkLine(markLine);
}
/**
* 合成所需的echartsVo实体类
*/
EchartsVo echartsVo = new EchartsVo();
echartsVo.setLengend(lengendList);
echartsVo.setxAxis(xAxis);
echartsVo.setSeriesList(seriesList);
return echartsVo;
}
/**
* 获得多组series,即多组数据
* @param dataVoList//查询的数据,DataVo格式的
* @param name//统计图表的名字
* @param type//统计图表的类型(bar 柱状图,line 折线图)
* @param lengend//每组数据的标题
* @return
*/
public EchartsVo FormatEchartsList(List<ArrayList<DataVo>> dataVoList,List<String> name ,List<String> type,boolean hasAverage){
List<String> lengendList = new ArrayList<String>();
lengendList.addAll(name);
if(dataVoList.size()!=name.size()&&name.size()!=type.size()){
System.out.println("您的数据长度不一致");
}
List<String> xAxis = new ArrayList<String>();
List<Series> seriesList = new ArrayList<Series>();
for(int i=0; i<name.size(); i++){
Series series = new Series();
series.setName(name.get(i));
series.setType(type.get(0));
List<DataVo> data = dataVoList.get(0);
List<Double> dataList = new ArrayList<Double>();
for(DataVo vo: data){
if(i==0){
xAxis.add(vo.getName());
}
dataList.add(vo.getSum());
}
series.setData(dataList);
seriesList.add(series);
}
/**
* 合成EchartsVo实体类
*/
EchartsVo echartsVo = new EchartsVo();
echartsVo.setLengend(lengendList);
echartsVo.setSeriesList(seriesList);
echartsVo.setxAxis(xAxis);
return echartsVo;
}
}
返回的EchartsVo对象可以参照上一篇文章。最后把这个对象应用看上一篇文章