Echarts转换数据的简单工具

     做好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>();//echarts的series所要数据(name,type,data)
        List<Double> dataList = new ArrayList<Double>();//series的data数据
        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对象可以参照上一篇文章。最后把这个对象应用看上一篇文章
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值