美文网首页
征服eCharts配置.

征服eCharts配置.

作者: 简人CC | 来源:发表于2017-10-13 16:44 被阅读0次
    1. grid 和 title.left(bottom,right,top)关系
    image.png
    //设置 
    title: {
      left: 'center' //将标题居中,数据类型为number或string
    },
    grid: {
      show: true //显示边框线  
    }
    

    1. legend(图列)
    image.png
    
    ***
    
    //设置
    legend: {
      data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
    },
    series: {
    data: [
         {
           value: 335,
           name: '直接访问'
         }, 
         {
           value: 310,
           name: '邮件营销'
         },
         {
          value: 234,
          name: '联盟广告'
         },
         {
          value: 135,
          name: '视频广告'
         }, 
         {
          value: 1548,
          name: '搜索引擎'
         }
    ]}
    

    滚动图例(点击三角形图标跳到对应页面)

    image.png
     //以下2种调用方法可以设置跳到哪个元素
            myChart.dispatchAction({
                type: 'legendScroll',
                scrollDataIndex: 26,
                // legendId: ''
            })
    -------------------------------------------------
           legend: {
                   scrollDataIndex: number,//
                       跳到索引对应的数据上,
                           但官网不推荐这种做法,说太重量了
               }
    
    //配置
    legend: {
        type: 'scroll',
        orient: 'vertical',
        right: 10,
        top: 20,
        bottom: 20,
        data: data.legendData,
        scrollDataIndex: number,//跳到索引对应的数据上,但官网不推荐这种做法,说太重量了
    },
    series: [{
        name: '姓名',
         type: 'pie',
        radius: '55%',
        center: ['40%', '50%'],
        data: data.seriesData,
        itemStyle: {
               emphasis: {
               shadowBlur: 10,
               shadowOffsetX: 0,
               shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
         }
    }]
    
    
    function genData(count) {
                var nameList = [
                    '赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危'
                ];
                var legendData = [];
                var seriesData = [];
                for (var i = 0; i < 50; i++) {
                    name = Math.random() > 0.65 ?
                        makeWord(4, 1) + '·' + makeWord(3, 0) :
                        makeWord(2, 1);
                    legendData.push(name);
                    seriesData.push({
                        name: name,
                        value: Math.round(Math.random() * 100000)
                    });
                }
    
                return {
                    legendData: legendData,
                    seriesData: seriesData
                };
    
                function makeWord(max, min) {
                    var nameLen = Math.ceil(Math.random() * max + min);
                    var name = [];
                    for (var i = 0; i < nameLen; i++) {
                        name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);
                    }
                    return name.join('');
                }
            }
    

    1. axisPointer 中的label和lineStyle用法.
    image.png
    //配置
    axisPointer: {
            show: true,//这个一定要为true,显示出来
            type: 'line',
            label: {
               
                textStyle: {
                  backgroundColor: 'red',//指示器的颜色。
                  
                }
            },
            lineStyle: {
              color    : 'yellow'//指示器线的颜色.
            }
    

    image.png
        tooltip: {
            trigger: 'axis',
            position: function (pt) {
                return [pt[0], '10%'];
            },
          // 通过css来控制浮层的外观
            extraCssText: 'background-color: red'
        },
    

    function randomData() {
    now = new Date(+now + oneDay);
    value = value + Math.random() * 21 - 10;
    return {
    name: now.toString(),
    value: [
    [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('-'),
    Math.round(value)
    ]
    }
    }
    var now = +new Date(2017, 7, 1);
    var oneDay = 24 * 3600 * 1000;
    var value = Math.random() * 1000;

    1. 多图联动 和 详细配置参数 demo
                var option1 = {
                    calculable: true,
    
                    dataZoom: [{
                        type: 'slider',
                        start: 10,//控制滚轴的起始点
                        end: 40,//控制滚轴的结束点
                        height: 10,//控制滚轴的高度
                        bottom: 4,//控制滚轴的距离
                        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',//控制滚轴2边icon的形状
                        handleSize: '50%',//控制2边icon的大小
                        dataBackground: {
                            areaStyle: {
                                color: 'transparent'//控制滚轴内部颜色
                            },
                            lineStyle: {
                                opacity: 0.8,
                                color: 'transparent'//控制滚轴内线的颜色
                            }
                        },
                        handleStyle: {
                            color: 'red',//控制滚轴2边icon的颜色
                            shadowBlur: 3,
                            shadowColor: 'rgba(0, 0, 0, 0.6)',
                            shadowOffsetX: 2,
                            shadowOffsetY: 2
                        }
                    }, {
                        type: 'inside'
                    }],
    
                    textStyle: {
                        textShadowOffsetX: 5
                    },
    
                    title: {
                        show: true,//是否显示标题.
                        text: '每日客流达成量  单位: 百/人次',//标题内容
                        textStyle: {//标题的样式的相关设置
                            fontSize: 14,
                            fontFamily: 'MicrosoftYaHei',
                            fontWeight: "lighter",
                            color: '#808080'
                        },
                        left: 101,//标题的位置
                        top: 18,
                        padding: 8,
                        borderColor: '#58a',
                        borderWidth: 3
                    },
    
                    legend: {//图例
                        // orient: 'vertical'
                        itemGap: 10 //2个图例之中的距离
                    },
    
                    tooltip: {
                        show: true,
                        trigger: 'item', // 触发类型,默认数据触发,见下图,可选为:'item' ¦ 'axis'
                        showDelay: 20, // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
                        hideDelay: 100, // 隐藏延迟,单位ms
                        transitionDuration: 0.4, // 动画变换时间,单位s
                        axisPointer: { // 坐标轴指示器,坐标轴触发有效
                            type: 'cross', // 默认为直线,可选为:'line' | 'shadow'
                            label: {
                                show: true,
                            }
                        },
                        position: function (point, params, dom, rect, size) {
                            // dom.innerHTML = `<div class="tip" style="border: none;padding: 0;background: transparent" > 
                            //      <p> 累计客流达成率: <span> ${ params[0]['data']} </span> </p>
                            //      <p> 当天累计客流量: <span> ${ params[1]['data']} </span> </p>
                            //  </div>`
                        }
                    },
    
                    grid: {//控制网格和本身的距离
                        // left: '3%',
                        // right: '4%',
                        // containLabel: true
                        show: true,
                    },
    
                    xAxis: [{
                        type: 'category',
                        data: dataScope('2017-6-30', '2017-10-1'),
                        // axisLabel: {
                        //  interval: 1,
                        //  margin: 2,
                        // },
                        // axisTick: {
                        //  alignWithLabel: true
                        // },
                        // axisLine: {
                        //  lineStyle: {
                        //  }
                        // }
                        // show: true,
                        // axisTick: {
                        //     show: false,
                        // },
                        axisLabel: {
                            textStyle: {//控制坐标轴刻度上的文字的样式
                                color: '#3b3b3b',
                                fontFamily: 'MicrosoftYaHei',
                                fontSize: 20,
                            }
                        },
                        axisLine: {
                            lineStyle: {////控制坐标线的样式
                                color: 'red'
                            }
                        },
                        markPoint: {//控制显示最大值和最小值
                            data: [{
                                    type: 'max',
                                    name: '最大值'
                                },
                                {
                                    type: 'min',
                                    name: '最小值'
                                }
                            ]
                        },
                    }],
    
                    yAxis: [{
                        type: 'value',
                        min: '0',
                        max: 'dataMax',
                        data: [0, 10, 20, 30, 40, 50, 60],
                        axisTick: {
                            show: false
                        },
                        axisLine: {
                            lineStyle: {
                                color: '#e2e2e2',
                            }
                        },
                        axisLabel: {
                            show: true,
                            textStyle: {
                                color: '#3b3b3b',
                                fontFamily: 'MicrosoftYaHei',
                                fontSize: 12,
                            }
                        },
                        // splitArea: {
                        // }
                        splitLine: {//控制网格线的样式
                            lineStyle: {
                                color: 'red',
                            }
                        },
                        axisPointer: {
                            show: false
                        }
                    }],
    
                    formatter: function (params) {
                        if (params.value == 14) {
                            return '';
                        } else {
                            return params.value;
                        }
                    },
    
                    series: [{
                        name: '直接访问',
                        type: 'bar',
                        barWidth: 12,//控制柱状图的宽度
                        data: [4, 7, 9, 10, 12, , 12, 3, 10, 12, 14, 29, 23, 3, 10, 12, 14, 29, 23, 3, 10,
                            12, 14, 29, 23, 3, 10, 12, 14, 29, 23, 10, 12, 14, 29, 23, 3, 10, 12, 14,
                            29, 23, 10, 12, 14, 29, 23, 3, 10, 12, 14, 29, 23, 14, 29, 23, 3, 10, 12,
                            14, 29, 14, 29, 23, 3, 10, , 14, 29, 23, 3, 10, 12, 14, 29, 14, 29, , 29,
                            14, 29, , 29, 14, 29, 23, 3, 10, 12, 14, 29, 12, 14, 29
                        ],
                        markPoint: {
                            symbol: 'circle',
                            symbolSize: 10,
                            color: 'transparent',
                            label: {
                                normal: {
                                    show: true,
                                    fontSize: 12,
                                    color: '#000',
                                    offset: [0, -15]
                                }
                            },
                            itemStyle: {
                                normal: {
                                    color: 'transparent',
                                }
                            },
                            data: [{
                                    type: 'max',
                                    name: '最大值'
                                },
                                {
                                    type: 'min',
                                    name: '最小值'
                                }
                            ]
                        },
                        itemStyle: {
                            normal: {
                                color: function (params) {
                                    var index_color = params.value;
                                    if (index_color >= 20) {
                                        return '#7191b8';
                                    } else {
                                        return '#e65d4d';
                                    }
                                },
                                width: 12,
                                label: {
                                    // show: true,
                                    // position: 'top'
                                }
                            },
                            emphasis: {
                                shadowBlur: 10,
                                shadowOffsetX: 0,
                                shadowColor: 'rgba(0, 0, 0, 0.5)'
                            }
                        }
                    }]
                };
    
                var option2 = {
                    toolbox: {
                        show: true,
                        feature: {
                            dataZoom: {
                                yAxisIndex: 'none'
                            },
                            dataView: {
                                optionToContent: function (opt) {
                                    var otc = 'graph.html?formData=yuYueData&title=预约日报表';
                                    return otc;
                                }
                            },
                            magicType: {
                                type: ['line', 'bar']
                            },
                            restore: {},
                            saveAsImage: {}
                        },
                        right: 80
                    },
    
                    dataZoom: [{
                        type: 'slider',
                        start: 0,
                        end: 20,
                        height: 15,
                        show: false
                    }],
    
                    title: {
                        show: false,
                        text: '每日客流达成率',
                        textStyle: {
                            fontSize: 14,
                            fontFamily: 'MicrosoftYaHei',
                            fontWeight: "lighter",
                            color: '#808080'
                        },
                        // top: 16,
                        // left: 45,
                        // padding: 8,
                        // borderColor: '#58a',
                        // borderWidth: 3
                    },
    
                    tooltip: {
                        show: true,
                        trigger: 'item', // 触发类型,默认数据触发,见下图,可选为:'item' ¦ 'axis'
                        showDelay: 20, // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
                        hideDelay: 100, // 隐藏延迟,单位ms
                        transitionDuration: 0.4, // 动画变换时间,单位s
                        axisPointer: { // 坐标轴指示器,坐标轴触发有效
                            type: 'cross', // 默认为直线,可选为:'line' | 'shadow'
                            label: {
                                show: true,
                            },
                            crossStyle: {
    
                            }
                        },
                        position: function (point, params, dom, rect, size) {
                            // dom.innerHTML = `<div class="tip" style="border: none;padding: 0;background: transparent" > 
                            //      <p> 累计客流达成率: <span> ${ params[0]['data']} </span> </p>
                            //      <p> 当天累计客流量: <span> ${ params[1]['data']} </span> </p>
                            //  </div>`
                        },
                        // formatter:
    
                        //position: ['50%', '50%'],   //相对位置,放置在容器正中间
                        // backgroundColor: 'red',
                    },
    
                    legend: {
                        data: [{
                            name: '每日客流达成率',
                            icon: 'line',
                        }, {
                            name: '七日均线',
                            icon: 'line'
                        }],
                        itemWidth: 20,
                        itemHeight: 20,
                        textStyle: {
                            color: '#3b3b3b',
                            fontFamily: 'SourceHanSansCN-Light',
                            fongSize: 12,
    
                        },
                        // selected: {
                        //  '每日客流达成率': true,
                        //  '七日均线': true
                        //  // 不想显示的都设置成false  
                        // },
                        itemGap: 40
                    },
    
                    grid: {
                        // left: '2%',
                        // right: '4%',
                        bottom: '2%',
                        show: true,
                        // containLabel: true
                    },
    
                    xAxis: {
                        type: 'category',
                        color: '#3b3b3b',
                        boundaryGap: false,
                        data: dataScope('2017-6-30', '2017-10-1'),
                        show: false,
                        axisTick: {
                            show: false,
                        },
                        axisLabel: {
                            show: true,
                            textStyle: {
                                color: '#3b3b3b',
                                fontFamily: 'MicrosoftYaHei',
                                fontSize: 12,
                                align: 'right'
                            }
                        },
                        boundaryGap: true,
                        axisLine: {
                            onZeroAxisIndex: 0
                        },
                        // axisLine: {
                        //      lineStyle: {
                        //          width: 1,
                        //          color: '#e2e2e2'
                        //      }
                        // }
                    },
    
                    yAxis: {
                        type: 'value',
                        data: [80, 100, 120, 140, 160, 180],
                        min: 'dataMin',
                        max: 'dataMax',
                        axisLabel: {
                            formatter: '{value}%',
                            show: true,
                            textStyle: {
                                color: '#3b3b3b',
                                fontFamily: 'MicrosoftYaHei',
                                fontSize: 12,
                            }
                        },
                        axisTick: {
                            show: false
                        },
                        axisLine: {
                            lineStyle: {
                                color: '#e2e2e2',
                            }
                        },
                        splitLine: {
                            lineStyle: {
                                color: '#f9f9f9',
                            }
                        }
                    },
    
                    series: [{
                        name: '每日客流达成率',
                        type: 'line',
                        itemStyle: {
                            normal: {
                                label: {
                                    // show: true
                                },
                                color: '#7191b8'
                            }
                        },
                        lineStyle: {
                            normal: {
                                // color: 'red'
                            }
                        },
                        connectNulls: true,
                        smooth: false,
                        data: [140.33, 119.07, 51.03, 55.28, 63.79, 85.05, 93.55, 153.08, 136.07, 51.03,
                            55.28, 63.79, 55.28, 59.53, 148.83, 140.33, 46.78, 63.79, 72.29, 63.79,
                            93.55, 136.07, 161.59, 51.03, 51.03, 59.53, 63.79, 55.28, 148.83, 136.07,
                            51.03, 55.28, 63.79, 59.53, 68.04, 161.59, 148.83, 51.03, 46.78, 63.79,
                            68.04, 80.79, 178.60, 161.59, 63.79, 59.53, 68.04, 80.79, 93.55, 174.35,
                            170.09, 68.04, 63.79, 72.29, 85.05, 102.06, 178.60, 170.09, 68.04, 68.04,
                            72.29, 89.30, 106.31, 187.10, 174.35, 72.29, 63.79, 72.29, 85.05, 102.06,
                            195.61, 182.85, 76.54, 68.04, 85.05, 93.55, 110.56, 204.11, 191.36, 80.79,
                            72.29, 85.05, 97.80, 114.81, 212.62, 204.11, 85.05, 76.54, 93.55, 106.31,
                            119.07
                        ],
                        showSymbol: false,
                        markPoint: {
                            symbol: 'circle',
                            symbolSize: 10,
                            color: 'red',
                            label: {
                                normal: {
                                    show: true,
                                    fontSize: 12,
                                    color: '#000',
                                    offset: [0, -15]
                                }
                            },
                            itemStyle: {
                                normal: {
                                    color: 'red',
                                }
                            },
                            data: [{
                                    type: 'max',
                                    name: '最大值'
                                },
                                {
                                    type: 'min',
                                    name: '最小值'
                                }
                            ]
                        }
                    }, {
                        name: '七日均线',
                        type: 'line',
                        smooth: false,
                        itemStyle: {
                            normal: {
                                label: {
                                    show: true
                                },
                                color: '#e65d4d'
                            }
                        },
                        connectNulls: true,
                        data: [33, 28, 12, 13, 15, 20, 22, 36, 32, 12, 13, 15, 13, 14, 35, 33, 11, 15, 17,
                            15, 22, 32, 38, 12, 12, 14, 15, 13, 35, 32, 12, 13, 15, 14, 16, 38, 35, 12,
                            11, 15, 16, 19, 42, 38, 15, 14, 16, 19, 22, 41, 40, 16, 15, 17, 20, 24, 42,
                            40, 16, 16, 17, 21, 25, 44, 41, 17, 15, 17, 20, 24, 46, 43, 18, 16, 20, 22,
                            26, 48, 45, 19, 17, 20, 23, 27, 50, 48, 20, 18, 22, 25, 28
                        ],
                        markPoint: {
                            symbol: 'circle',
                            symbolSize: 10,
                            color: '#58a',
                            label: {
                                normal: {
                                    show: true,
                                    fontSize: 12,
                                    color: 'blue',
                                    offset: [0, -15]
                                }
                            },
                            itemStyle: {
                                normal: {
                                    color: 'blue',
                                }
                            },
                            data: [{
                                    type: 'max',
                                    name: '最大值'
                                },
                                {
                                    type: 'min',
                                    name: '最小值'
                                }
                            ]
                        },
                        showSymbol: false,
                    }]
                };
    
                var myChart = echarts.init(document.getElementById('main1'));
                myChart.setOption(option1);
                var myChart2 = echarts.init(document.getElementById('main2'));
                myChart2.setOption(option2);
                echarts.connect([myChart, myChart2]);
    

    相关文章

      网友评论

          本文标题:征服eCharts配置.

          本文链接:https://www.haomeiwen.com/subject/fwnzyxtx.html