echarts分组柱状图的前后台处理

原生的echarts使用:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        哈哈哈
        <div id="chartmain" style="width:600px; height: 400px;"></div>
    </body>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="js/echarts.js"></script>
    <script>
        var option = {

            title:{text:‘嘿嘿‘},
            tooltip: {
                trigger: ‘axis‘,
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: ‘shadow‘ // 默认为直线,可选为:‘line‘ | ‘shadow‘
                }
            },
            legend: {
                data: [‘百度‘, ‘谷歌‘, ‘必应‘]
            },
            xAxis: [{
                type: ‘category‘,
                data: [‘周一‘, ‘周二‘, ‘周三‘, ‘周四‘]
            }],
            yAxis: [{
                type: ‘value‘
            }],
            series: [
                {
                    name: ‘百度‘,
                    type: ‘bar‘,
                    data: [620, 732, 701, 734],
                },
                {
                    name: ‘谷歌‘,
                    type: ‘bar‘,
                    data: [120, 132, 101, 134],
                    //markLine: {
                    //    symbol: ‘none‘,
                    //    data: [{
                    //        type: ‘average‘,
                    //        name: ‘平均值‘
                    //    }]
                    //},
                },
                {
                    name: ‘必应‘,
                    type: ‘bar‘,
                    data: [60, 72, 71, 74, 190]
                }
            ]
        };
        //初始化echarts实例
        var myChart = echarts.init(document.getElementById(‘chartmain‘));
        //使用制定的配置项和数据显示图表
        myChart.setOption(option);
    </script>
</html>

前台封装方法后的js:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        哈哈哈
        <div id="chartmain" style="width:600px; height: 400px;"></div>
    </body>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="js/echarts.js"></script>
    <script>

    drawGroupChart("chartmain");

    //画分组柱状图方法
    function  drawGroupChart(domId){

        var title = "嘿嘿1";
        var xA =  [‘周一‘, ‘周二‘, ‘周三‘, ‘周四‘];
        var legendData = [‘百度‘, ‘谷歌‘, ‘必应‘];

        //[620, 732, 701, 734] 是x轴上每一组bar上的第一个柱子的数据的值的集合
        //[120, 132, 101, 134] 是x轴上每一组bar上的第二个柱子的数据的值的集合
        //所以,每一个小集合中数据的顺序都要和xA中的数据顺序对应,整个大集合中数据的顺序要和legendData对应
        var dataList = [[620, 732, 701, 734],[120, 132, 101, 134],[60, 72, 71, 74, 190]];

        var ss = [];
        $.each(legendData,function(i,v){

            var o = {
                    name:v,
                    type: ‘bar‘,
                    data: dataList[i]
            };

            ss.push(o);
        });

        var option = {
            title:{text:title},
            tooltip: {
                trigger: ‘axis‘,
                axisPointer: { // 坐标轴指示器,坐标轴触发有效
                    type: ‘shadow‘ // 默认为直线,可选为:‘line‘ | ‘shadow‘
                }
            },
            legend: {
                data: legendData
            },
            xAxis: [{
                type: ‘category‘,
                data: xA
            }],
            yAxis: [{
                type: ‘value‘
            }],
            series:  ss
                /* [
                {
                    name: ‘百度‘,
                    type: ‘bar‘,
                    data: [620, 732, 701, 734],
                },
                {
                    name: ‘谷歌‘,
                    type: ‘bar‘,
                    data: [120, 132, 101, 134],
                },
                {
                    name: ‘必应‘,
                    type: ‘bar‘,
                    data: [60, 72, 71, 74, 190]
                }
            ] */
        };
        //初始化echarts实例
        //var myChart = echarts.init(document.getElementById(‘chartmain‘));
        var myChart = echarts.init(document.getElementById(domId));
        //使用制定的配置项和数据显示图表
        myChart.setOption(option);
    }

    </script>
</html>

对应java后台的dto;

package com.pojo;

import java.util.List;

public class EchartsDto {

    //标题
    private String title;

    //x轴名称集合
    private List<String> xA;

    //普通柱状图时使用数据  eg:[] 一个ArrayList
    private Object data;

    //分组柱状图时使用数据    eg:dataList = [[],[],[]] 可以用大list里面套小list
    private Object dataList;

    //分类名称集合(每一组中每个bar的名称 集合)
    private List<String> legendData;
}

原文地址:https://www.cnblogs.com/libin6505/p/10324574.html

时间: 2024-11-08 17:49:20

echarts分组柱状图的前后台处理的相关文章

echarts彩虹柱状图 每个bar显示不同颜色, 标题在不同位置 ,工具中有可以直接保存为图片下载

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> 哈哈哈 <div id="chartmain" style="width:600px; height: 400px;"></div> </body>

ECharts系列 - 柱状图(条形图)实例一

ECharts主页:  http://echarts.baidu.com/index.html ECharts-2.1.8下载地址:  http://echarts.baidu.com/build/echarts-2.1.8.zip ECharts官方实例:  http://echarts.baidu.com/doc/example.html ECharts官方API文档:  http://echarts.baidu.com/doc/doc.html ECharts系列 - 柱状图(条形图)实例

Echarts调整图表上下左右的间距,Echarts调整柱状图左右的间距

Echarts调整图表上下左右的间距,Echarts调整柱状图左右的间距 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年5月5日 http://www.cnblogs.com/fanshuyao/ 做了个柱状图的报表,如下: 但是图和下面的表格没有对齐,需要

echarts 分组绘制柱状图

示意图: 代码如下: <!DOCTYPE html> <html style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%

echarts分组插件echarts.group代码分享

前言 echarts是百度出品的一款很棒的前端图表控件,被评为"百度少有的良心产品".可以实现散点图.折线图.柱状图.地图.饼图.雷达图.K线图等等几十种常用.不常用的图表,效果酷炫. 示例地址:http://echarts.baidu.com/examples.html 由于近期项目的需要,我开发了一款echarts插件,可以让序列series分组展示,下拉框选择.这样当series较多时,不再被超长的图例legend所困扰,而且可以自带全选功能. 效果 用作示例的数据,产品维度分为

Thinkphp+ECharts生成柱状图

1.首先进ECharts官网下载echarts.js 点击下载,结合TP5讲解,主要代码在js里面,更多请到ECharts官网 2.引进echarts.js <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>销售柱状图</title> <!-- 引入ECharts文件 --> <script type="text/ja

VUE中使用Echarts绘制柱状图

在main.js中引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts 在相应的vue中导入echarts import echarts from 'echarts'; 实现柱状图显示 <div style="width: 100%;height: 50%;border:1px solid rgb(180,180,180);top: 0px" id="echartss"

PHP+ECharts系列 - 柱状图(条形图)实例一

<!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts</title> <script src="echarts.min.js"></script> <script src="jquery.js"></script> </head> <body> &l

echarts实现柱状图分页展示

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <script src="echarts.min.js"></script> </head> <body> <!-- 为ECharts