zoukankan      html  css  js  c++  java
  • echarts多条折线图

    折线图单只比较好配置,但是多只的话,楼主整整难了一下午才搞出来,下面分享下啦

    var myChart = echarts.init(document.getElementById('series-chart'));
    // 指定图表的配置项和数据
    var option = {
        baseOption: {
            //图表配置标题
            title: {
                text: '销量',
                textStyle: {
                    fontSize: 12,
                    fontWeight: 400,
                    color: '#000000'
                },
                left: 5,
                top: -5,
    
            },
            //配置提示信息
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow'
                }
            },
            color: ['#FA660A', '#0E76E4', '#8923F1', '#FF0000', "#339966"],
            legend: {
                show: true,
                right: '15%',
                top: 12,
                300,
                height:100,
                icon: 'rect',
                itemWidth: 10,
                itemHeight: 4,
                textStyle: {
                    color: '#1a1a1a',
                    fontSize: 12,
                },
                data: [],
             //legend图例也需要动态获取
            },
            grid: {
                top: 60,
                left: 55,
                right: 75,
    
            },
          //dataZoom 是控制下方的滑动条的,不需要的可以不用配置。没有截
           图出来
            dataZoom: [{ //Y轴固定,让内容滚动
                    type: 'slider',
                    show: false,
                    xAxisIndex: [0],
                    start: 1,
                    end: 50, //设置X轴刻度之间的间隔(根据数据量来调整)
                    zoomLock: true, //锁定区域禁止缩放(鼠标滚动会缩放,所以禁止)
                },
                {
                    type: 'inside',
                    xAxisIndex: [0],
                    start: 1,
                    end: 50,
                    zoomLock: true, //锁定区域禁止缩放
                }, {
                    start: 0,
                    end: 10,
                    showDetail: false,
                    left: "center", //组件离容器左侧的距离,'left', 'center', 'right','20%'
                    right: "auto", //组件离容器右侧的距离,'20%'
                    bottom: "8%",
                    height: 8,
                    dataBackground: {
                        lineStyle: {
                             0.5,
                            height: 0.5,
                            color: '#cccccc',
                            type: 'solid',
                        },
                    },
                    fillerColor: '#ea6100',
                    handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
                    handleSize: '50%',
                    handleStyle: {
                        color: {
                            type: 'linear',
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1,
                            colorStops: [{
                                offset: 0,
                                color: '#FA660A' // 0% 处的颜色
                            }, {
                                offset: 1,
                                color: '#ea6100' // 100% 处的颜色
                            }],
                            global: false // 缺省为 false
                        },
                        shadowBlur: 3,
                        shadowColor: 'rgba(0, 0, 0, 0.6)',
                        shadowOffsetX: 1,
                        shadowOffsetY: 1
                    }
                }
    
            ],
            //x轴   
            xAxis: {
                name: '时间', // 给X轴加单位
                nameLocation: 'end', //时间出现的位置
                type: 'category',
                //x轴文字配置
                axisLabel: {
                    show: true,
                    inside: false,
                    align: 'left',
                    // margin: 4,
                    textStyle: {
                        color: '#1a1a1a',
                        fontSize: '10'
                    }
                },
                axisTick: {
                    show: false
                }, //去掉x轴刻度线
                data: [],
                axisLine: {
                    show: false,
                    length: 3,
                }
            },
            //y轴
            yAxis: {
                axisLabel: {
                    show: true,
                    textStyle: {
                        color: '#1a1a1a',
                        fontSize: '10'
                    }
                },
                axisLine: {
                    show: false //y轴刻度线不显示
                }
    
            },
            series: {
                type: "line",
                name: "",
                data: [],
            },
    
        }
    
    };
    // 使用刚指定的配置项和数据显示图表。 -->
    myChart.setOption(option);

    下面接口处理的

    $.ajax({
            type: "get",
            url: "http://59.108.98.169/salesSearch/?stype =3&startDate=" + startDate + "&endDate=" + endDate + "&brandGroup=" + brandGroup + "&vendorGroup=" + groupGroup + "&seriesGroup=" + seriesGroup,
            dataType: "jsonp",
            success: function (json) {
                console.log(json);
               
                // x轴月份
                var monthData = [];
                for (var i = 0; i < item.month_data.length; i++) {
                    var obj = new Object();
                    obj = item.month_data[i];
                    var month = obj.substring(5, 7);
                    monthData[i] = month;
                }
                console.log(monthData);
                var legend = []; //设置图例文字
                for (var i = 0; i < item.data.length; i++) {
                    var obj = new Object();
                    obj.name = item.data[i].name;
                    legend[i] = obj;
                }
                console.log(legend);
                var name = []; //设置图标每条线名称
                for (var i = 0; i < item.data.length; i++) {
                    var obj = new Object();
                    obj.name = item.data[i].name;
                    name[i] = obj;
                }
                console.log(name);
                //销量
                var saleData = [];
                for (var i = 0; i < item.data.length; i++) {
                    var obj = new Object();
                    obj.sales_data = item.data[i].sales_data;
                    saleData[i] = obj;
                }
                console.log(saleData);
                console.log(item.data);
                //折线图数据  需要重新push
                var s_data = [];
                for (var j = 0; j < item.data.length; j++) {
                    s_temp = {
                        name: item.data[j].name,
                        type: "line",
                        symbol: 'none',
                        data: item.data[j].sales_data
                    };
                    s_data.push(s_temp)
    
                }
                var srtHtml = "";
                // 柱状图 需要倒序数组
                myChart.setOption({
                    xAxis: {
                        data: monthData.reverse()
                    },
                    legend: {
                        data: legend
                    },
                    series: s_data 
    
                });
            },
            error: function () {
                console.log("请求失败");
            }
    
        })
  • 相关阅读:
    golang 多个worker正常关闭的示例
    golang调试工具Delve
    Golang & GitLab-CI 详细实例步骤
    [git] 能在关键时刻救命的git指令
    高效实时数据排行榜实现
    [Golang] 编译程序时打上git提交信息标记
    [Golang] 开源一个帧同步服务器
    Golang etcd服务注册与发现
    Golang pprof详解
    shell 递归枚举文件并操作
  • 原文地址:https://www.cnblogs.com/cyhsmile/p/12378208.html
Copyright © 2011-2022 走看看