ECharts学习笔记

ECharts

一、ECharts快速入门

  • 引入echarts.js文件
  • 准备一个图表容器盒子
  • 初始化echarts实例对象
  • 准备配置项!
  • 将配置项设置给echarts实例对象
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入echarts.js文件 -->
    <script src="./lib/echarts.min.js"></script>  
    <script>
        onload=()=>{
            // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
            var myECharts = echarts.init(document.querySelector('#root'));
            // 准备配置项!
            var option ={
                xAxis:{   //直角坐标系中的x轴
                    type:'category',  //类目轴
                    data:['兰博基尼','劳斯莱斯','梅赛德斯']  //具体的类目
                },
                yAxis:{  //直角坐标系中的y轴
                    type:'value'  //数值轴 从series中取得数据
                },
                series:[  //系列列表,每个系列通过type决定自己的图表类型
                    {
                        name:'价格',   
                        type:'bar',  //图表类型
                        data:[50000000,52000000,49000000]
                    }
                ]
            }
            // 将配置项设置给echarts实例对象
            myECharts.setOption(option);
        }
    </script>
</head>
<body>
    <!-- 准备一个图表容器盒子 -->
    <div id="root" style="width: 700px; height: 500px;"></div>
</body>
</html>

二、ECharts中的常用图表

tip:通用配置

  • title:标题

    • 文字样式 textStyle
    • 标题边框
      • borderWidth
      • borderColor
      • borderRadius
    • 标题位置
      • top
      • bottom
      • left
      • right
    title:{  //标题
        text:'汽车价格柱状图',  //标题文字
        textStyle:{  //文字样式
        	color:'#4DBCFF'
        },
        borderWidth:1,  //标题边框宽度
        borderColor:'#302C3A', //边框颜色
        borderRadius:5,  //边框圆角
        left:30  //标题位置偏移
    },
    
  • tooltip:提示

    • 触发类型:trigger
      • item
      • axis
    • 触发时机:triggerOn
      • mousemove
      • click
    • 格式化:formatter
      • 模板字符串
      • 回调函数
    tooltip: {  //提示
        trigger: 'item',  //触发类型  item/axis
        triggerOn: 'click',  //触发时机  mousemove/click
        formatter(arg) {
            // console.log(arg)
            return arg.name + '的价格:' + arg.data
        }  //格式化
    },
    
  • toolbox:工具按钮

    • saveAsImage:导出图片
    • dataView:数据视图
    • restore:重置
    • dataZoom:区域缩放
    • magicType:切换图表类型
    toolbox:{  //工具
        feature:{  
            saveAsImage:{},  //导出图片
            dataView:{},  //数据视图
            restore:{},  //重置
            dataZoom:{},  //区域缩放
            magicType:{  //切换图表类型
                type:['bar','line']  //line:折线图
            }
        }
    },
    
  • legend:图例筛选

    legend:{
    	data:['价格','人气']
    },
    
    //与系列配合
    series: [  //系列列表,每个系列通过type决定自己的图表类型
        {
            name: '价格',
            type: 'bar',  //图表类型(柱状图)
            data: [50000000, 52000000, 49000000, 25000000, 36000000]
        },
        {
            name: '人气',
            type: 'bar',  //图表类型(柱状图)
            data: [50052118, 42358004, 49447899, 95880012, 36000000]
        }
    ]
    

tip:直角坐标系中的常用配置

  • 网格 grid

    grid:{
        show:true,
        borderWidth:5,
        borderColor:'skyblue',
        width:500,
        height:350,
        top:50,
        left:100,
    },
    
  • 坐标轴 axis

    • 分为 xAxis(x轴),yAxis(y轴)
    • 轴类型 type
      • value:数值轴,自动会从目标数据中读取数据
      • category:类目轴,该类型必须通过data设置类目数据
    • 显示位置 position
      • xAxis:可以取值为top或者bottom
      • yAxis:可以取值为left或者right
  • 区域缩放 dataZoom

    • 用于区域缩放,对数据范围过滤,x轴y轴等候可以拥有
    • dataZoom是一个数组,可以配置多个缩放区域
    • 类型 type
      • slider:滑块
      • inside:内置,通过鼠标滚轮
    • 指明作用轴
      • xAxisIndex
      • yAxisIndex
    • 指明初始缩放情况
      • start:起始百分比
      • end:终止百分比

1.柱状图 bar

  • 常见效果
    • 标记
      • markPoint:标记点(最大值,最小值)
      • markLine:标记线(平均值)
    • 显示
      • label:数值显示
      • barWidth:柱宽度
      • 调换x轴y轴实现横向柱状图
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入echarts.js文件 -->
    <script src="./lib/echarts.min.js"></script>  
    <script>
        onload=()=>{
            // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
            var myECharts = echarts.init(document.querySelector('#root'));
            // 准备配置项!
            var option ={
                //纵向柱状图
                // xAxis:{   //直角坐标系中的x轴
                //     type:'category',  //类目轴
                //     data:['兰博基尼','劳斯莱斯','梅赛德斯','BMW中国','保时捷']  //具体的类目
                // },
                // yAxis:{  //直角坐标系中的y轴
                //     type:'value'  //数值轴 从series中取得数据
                // },
                
                // 横向柱状图
                xAxis:{   //直角坐标系中的x轴
                    type:'value'  //数值轴 从series中取得数据
                },
                yAxis:{  //直角坐标系中的y轴
                    type:'category',  //类目轴
                    data:['兰博基尼','劳斯莱斯','梅赛德斯','BMW中国','保时捷']  //具体的类目
                },
                series:[  //系列列表,每个系列通过type决定自己的图表类型
                    {
                        name:'价格',   
                        type:'bar',  //图表类型(柱状图)
                        markPoint:{  //标记点
                            data:[   
                                //最大值和最小值
                                {
                                    type:'max',
                                    name:'最大值'
                                },
                                {
                                    type:'min',
                                    name:'最小值'
                                }
                            ]
                        },
                        markLine:{  //标记线
                            data:[  
                                //平均值
                                { 
                                    type:'average',
                                    name:'平均值'
                                }
                            ]
                        },
                        label:{  //显示数值
                            show:true,
                        },
                        barWidth:'70px',  //柱宽度
                        data:[50000000,52000000,49000000,25000000,36000000]
                    }
                ]
            }
            // 将配置项设置给echarts实例对象
            myECharts.setOption(option);
        }
    </script>
</head>
<body>
    <!-- 准备一个图表容器盒子 -->
    <div id="root" style="width: 700px; height: 700px;"></div>
</body>
</html>

2.折线图 line

常见效果

  • 标记
    • markPoint:标记点(最大值,最小值)
    • markLine:标记线(平均值)
    • markArea:标注区间
  • 线条控制
    • smooth:平滑
    • lineStyle:线条样式
  • 填充风格
    • areaStyle:填充区域风格
  • 紧挨边缘
    • boundaryGap (配置在xAxis中)
  • 缩放:脱离0值比例
    • scale
  • 堆叠图(当有多个系列使图表显得杂乱无章时使用)
    • atack
  • 显示
    • label:数值显示
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入echarts.js文件 -->
    <script src="./lib/echarts.min.js"></script>
    <script>
        onload = () => {
            // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
            var myECharts = echarts.init(document.querySelector('#root'));
            // 准备配置项!
            var option = {
                xAxis: {   //直角坐标系中的x轴
                    type: 'category',  //类目轴
                    data: ['兰博基尼', '劳斯莱斯', '梅赛德斯', 'BMW中国', '保时捷'],  //具体的类目
                    boundaryGap: false  //紧挨边缘
                },
                yAxis: {  //直角坐标系中的y轴
                    type: 'value',  //数值轴 从series中取得数据
                    scale: true  //缩放:脱离0值比例
                },
                series: [  //系列列表,每个系列通过type决定自己的图表类型
                    {
                        name: '价格',
                        type: 'line',  //图表类型(折线图)
                        markPoint: {  //标记点
                            data: [
                                //最大值和最小值
                                {
                                    type: 'max',
                                    name: '最大值'
                                },
                                {
                                    type: 'min',
                                    name: '最小值'
                                }
                            ]
                        },
                        markLine: {  //标记线
                            data: [
                                //平均值
                                {
                                    type: 'average',
                                    name: '平均值'
                                }
                            ]
                        },
                        markArea: {
                            data: [
                                [
                                    { xAxis: '兰博基尼' },  //标记开始值
                                    { xAxis: '劳斯莱斯' }   //标记终止值
                                ],
                                [
                                    { xAxis: 'BMW中国' },
                                    { xAxis: '保时捷' }
                                ]
                            ]
                        },
                        // smooth: true,  //平滑
                        lineStyle: {  //线条样式
                            color: 'blue',  //颜色
                            type: 'solid'  //dashed/dotted/solid
                        },
                        areaStyle: {  //填充区域风格
                            color: '#36CBCE'
                        },
                        label: {  //显示数值
                            show: true,
                        },
                        stack: 'a',  //堆叠图
                        data: [5000000, 5200000, 4900000, 2500000, 3600000]
                    },
                    {
                        name: '人气',
                        type: 'line',  //图表类型(折线图)
                        markPoint: {  //标记点
                            data: [
                                //最大值和最小值
                                {
                                    type: 'max',
                                    name: '最大值'
                                },
                                {
                                    type: 'min',
                                    name: '最小值'
                                }
                            ]
                        },
                        markLine: {  //标记线
                            data: [
                                //平均值
                                {
                                    type: 'average',
                                    name: '平均值'
                                }
                            ]
                        },
                        label: {  //显示数值
                            show: true,
                        },
                        stack: 'a',
                        data: [905211, 235800, 944789, 588001, 600000]
                    }
                ]
            }
            // 将配置项设置给echarts实例对象
            myECharts.setOption(option);
        }
    </script>
</head>

<body>
    <!-- 准备一个图表容器盒子 -->
    <div id="root" style="width: 700px; height: 700px;"></div>
</body>

</html>

3.散点图 scatter

常见效果

  • 气泡图

    • symbolSize:点大小
      • 可以是回调函数
    • itemStyle:点样式
      • color (也支持回调函数)
  • 涟漪动画

    • type:effectScatter
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <!-- 引入echarts.js文件 -->
        <script src="./lib/echarts.min.js"></script>
        <script>
            onload = () => {
                // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
                var myECharts = echarts.init(document.querySelector('#root'));
                // 准备配置项!
                var option = {
                    //纵向柱状图
                    xAxis: {   //直角坐标系中的x轴
                        type: 'value',
                        scale:true  //脱离0值比例
                    },
                    yAxis: {  //直角坐标系中的y轴
                        type: 'value',
                        scale:true  //脱离0值比例
                    },
                    series: [  //系列列表,每个系列通过type决定自己的图表类型
                        {
                            // type:'scatter', //图表类型(散点图)
                            type: 'effectScatter', //具有涟漪动画的散点图
                            showEffectOn:'emphasis', //涟漪时机 render/emphasis
                            rippleEffect:{
                                scale:5  //涟漪大小
                            },
                            data: [
                                [175,80],[162,80],[158,49],[180,75],[149,78],[170,70],[171,72],[170,100],[174,76],[159,65],
                                [165,62],[168,68],[185,82],[173,75],[132,45],[155,50],[162,52],[178,68],[162,53],[176,70]
                            ],
                            symbolSize(arg){  //点大小
                            // console.log(arg)
                                return (arg[1]/(arg[0]*arg[0]/10000)) > 28 ? 14:8
                            },
                            itemStyle:{
                                color(arg){
                                    return (arg.data[1]/(arg.data[0]*arg.data[0]/10000)) > 28 ? 'red':'green'
                                }
                            }
                        }
                    ]
                }
                // 将配置项设置给echarts实例对象
                myECharts.setOption(option);
            }
        </script>
    </head>
    
    <body>
        <!-- 准备一个图表容器盒子 -->
        <div id="root" style="width: 700px; height: 700px;"></div>
    </body>
    
    </html>
    

4.饼图 pie

常见效果

  • 显示数值

    • label
      • show
      • formatter (回调函数)
  • 圆环

    • radius:饼半径,设置两个半径即圆环radius:[‘30%’,‘80%’]
  • 南丁格尔图 (饼图的每一个区域的半径不一样,随着数值变化)

    • roseType:‘radius’
  • 选中效果

    • selectedMode:设置选中效果 single/multiple
    • selectedOffset:设置选中偏移量
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="./node_modules/echarts/dist/echarts.min.js"></script>
        <script>
            onload =function(){
                // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
                var myECharts = echarts.init(document.querySelector('#root'));
                // 准备数据
                var domeData=[
                    {name:'吃喝',value:700},
                    {name:'学习',value:9000},
                    {name:'出行',value:2000},
                    {name:'服饰',value:1825},
                    {name:'玩乐',value:654},
                    {name:'其他',value:269}
                ]
                // 准备配置项!
                var option = {
                    series:[
                        {
                            type:'pie',  //饼图
                            data:domeData,
                            label:{
                                show:true,
                                formatter(arg){
                                    // console.log(arg)
                                    return `${arg.name}-${arg.value}-${arg.percent}%`
                                }
                            },
                            // radius:100, 
                            // radius:'50%', //百分比参照的是高度及宽度较小的一个的一半的百分比
                            // radius:['30%','80%'], //设置为数组,第0个元素表示内圆半径,第1个表示外圆半径
                            roseType:'radius',
                            selectedMode:'single',  //设置选中效果 single/multiple
                            selectedOffset:15  //设置选中偏移量
                        }
                    ]
                }
                // 将配置项设置给echarts实例对象
                myECharts.setOption(option)
            }
        </script>
    </head>
    
    <body>
        <!-- 准备一个图表容器盒子 -->
        <div id="root" style="width: 700px; height: 700px;"></div>
    </body>
    
    </html>
    

5.地图 map

使用方式

  • 百度地图API
    • 申请百度地图ak
  • 矢量地图
    • 准备矢量地图数据 (json文件,在json/map/目录下)
    • 使用Ajax获取矢量地图数据 json文件
    • 在回调函数中往echarts全局对象注册地图json数据 echarts.registerMap('testMap',testJson)
    • 配置geo
      • type:‘map’
      • map:‘testMap’

常见效果

  • 缩放拖动

    • roam
  • 名称展示

    • label
      • show
  • 初始缩放值

    • zoom
  • 初始地图中心点

    • center:[100,100] //经纬度
  • 不同城市显示不同效果

    • 准备数据 (对象数组)

      var data=[
          { name: '北京', value: 39.92 },
          { name: '天津', value: 39.13 },
          { name: '上海', value: 31.22 },
          ...
      ]
      
    • 配置series

      • geoIndex
      • type:‘map’
    • 配置visualMap

      • min 最小值
      • max 最大值
      • inRange 颜色改变范围
      • calculable 可筛选
  • 地图+散点图

    • 在series中增加一个系列(散点图)
    • 让散点图使用地图坐标系统 coordinateSystem:‘geo’
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="./node_modules/echarts/dist/echarts.min.js"></script>
        <script src="./node_modules/jquery/dist/jquery.min.js"></script>
        <script>
            onload = function () {
                // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
                var myECharts = echarts.init(document.querySelector('#root'));
                var airData = [
                    { name: '北京', value: 39.92 },
                    { name: '天津', value: 39.13 },
                    { name: '上海', value: 31.22 },
                    { name: '重庆', value: 66 },
                    { name: '河北', value: 147 },
                    { name: '河南', value: 113 },
                    { name: '云南', value: 25.04 },
                    { name: '辽宁', value: 50 },
                    { name: '黑龙江', value: 114 },
                    { name: '湖南', value: 175 },
                    { name: '安徽', value: 117 },
                    { name: '山东', value: 228 },
                    { name: '新疆', value: 84 },
                    { name: '江苏', value: 67 },
                    { name: '浙江', value: 84 },
                    { name: '江西', value: 96 },
                    { name: '湖北', value: 273 },
                    { name: '广西', value: 59 },
                    { name: '甘肃', value: 99 },
                    { name: '山西', value: 39 },
                    { name: '内蒙古', value: 58 },
                    { name: '陕西', value: 61 },
                    { name: '吉林', value: 51 },
                    { name: '福建', value: 29 },
                    { name: '贵州', value: 71 },
                    { name: '广东', value: 38 },
                    { name: '青海', value: 57 },
                    { name: '西藏', value: 24 },
                    { name: '四川', value: 58 },
                    { name: '宁夏', value: 52 },
                    { name: '海南', value: 54 },
                    { name: '台湾', value: 88 },
                    { name: '香港', value: 66 },
                    { name: '澳门', value: 77 },
                    { name: '南海诸岛', value: 55 }
                ]
                var badAirData = []
                $.ajax({
                    type: 'get',
                    url: './json/map/china.json',
                    success(data) {
                        console.log(data)
    
                        // 处理数据
                        airData.forEach((value, index) => {
                            if (value.value > 200) {
                                // data.features.properties.name
                                // data.features.properties.cp
                                data.features.forEach((v, i) => {
                                    if (v.properties.name === value.name) {
                                        badAirData.push({ value: v.properties.cp });
                                    }
                                })
                            }
                        })
                        // console.log(badAirData)
    
                        // 在回调函数中往echarts全局对象注册地图json数据
                        echarts.registerMap('chinaMap', data)
    
                        // 直接在回调中配置并将配置项设置给echarts实例对象
                        var option = {
                            geo: {
                                type: 'map', //地图类型
                                map: 'chinaMap',
                                roam: true,  //缩放拖动
                                label: {
                                    // show:true,  //显示名称
                                },
                                zoom: 1, //初始缩放值
                                // center: [116.405285, 39.904989],  //设置地图初始中心点
                            },
                            series: [
                                {
                                    data: airData,
                                    geoIndex: 0, //将空气质量数据与第0个geo配置关联
                                    type: 'map'
                                },
                                {  //在series中增加一个系列(散点图)
                                    data: badAirData,
                                    type: 'effectScatter',
                                    coordinateSystem: 'geo',  //让散点图使用地图坐标系统
                                    rippleEffect: {
                                        scale: 5  //涟漪大小
                                    }
                                }
                            ],
                            visualMap: {  //配置visualMap
                                min: 0,
                                max: 300,
                                inRange: {
                                    color: ['green', 'yellow']
                                    // color:['yellow','red']
                                },
                                calculable: true  //可筛选
                            }
                        }
                        // 将配置项设置给echarts实例对象
                        myECharts.setOption(option)
                    },
                    error(err) {
                        console.log(err)
                    }
                })
            }
        </script>
    </head>
    
    <body>
        <!-- 准备一个图表容器盒子 -->
        <div id="root" style="width: 700px; height: 700px; border: rgb(95, 95, 94) 2px solid;"></div>
    </body>
    
    </html>
    

6.雷达图 radar

使用方式

  • 定义各个维度的最大值 indicator:[{name:'伤害',max:100},...]
  • 准备具体数据 data:[{name:'国服韩信',value:[10,...]},...]

常见效果

  • 显示数值 label

  • 填充区域 areaStyle

  • 最外层图形 shape (在 radar中配置)

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="./node_modules/echarts/dist/echarts.min.js"></script>
        <script src="./node_modules/jquery/dist/jquery.min.js"></script>
        <script>
            onload = function () {
                // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
                var myECharts = echarts.init(document.querySelector('#root'));
    
                var maxData = [
                    { name: '伤害', value: 100 },
                    { name: '参团', value: 100 },
                    { name: '发育', value: 100 },
                    { name: '承伤', value: 100 },
                    { name: '其他', value: 100 },
                ]
    
                var playerData = [
                    { name: '国服韩信', value: [57, 24, 88, 62, 71] },
                    { name: '最菜中单', value: [85, 88, 79, 55, 83] }
                ]
    
                var option = {
                    radar: {  //配置各个维度最大值
                        indicator: maxData,
                        shape: 'polygon'  //最外层图形 polygon/circle
                    },
                    series: [
                        {
                            type: 'radar',  //雷达图
                            data: playerData,
                            label: {
                                show: true,  //显示数值
                            },
                            areaStyle: {},  //填充区域
                        }
                    ]
                }
                // 将配置项设置给echarts实例对象
                myECharts.setOption(option)
    
            }
        </script>
    </head>
    
    <body>
        <!-- 准备一个图表容器盒子 -->
        <div id="root" style="width: 700px; height: 700px;"></div>
    </body>
    
    </html>
    

7.仪表盘图 gauge

使用方法

  • 数据准备 data:[{value:35},...]

常见效果

  • 数值范围 max min

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script src="./node_modules/echarts/dist/echarts.min.js"></script>
        <script src="./node_modules/jquery/dist/jquery.min.js"></script>
        <script>
            onload = function () {
                // 初始化echarts实例对象 其中init函数参数为dom元素,决定图标最终展示的位置
                var myECharts = echarts.init(document.querySelector('#root'));
    
                var domeData = [{ value: 166 }]
    
                var option = {
                    series: [
                        {
                            type: 'gauge',  //仪表盘图
                            data: domeData,
                            min: 0,
                            max: 200
                        }
                    ]
                }
                // 将配置项设置给echarts实例对象
                myECharts.setOption(option)
    
            }
        </script>
    </head>
    
    <body>
        <!-- 准备一个图表容器盒子 -->
        <div id="root" style="width: 700px; height: 700px;"></div>
    </body>
    
    </html>
    

三、Echarts高级使用

1.显示相关

1.1主题
  • 内置主题
    • light/dark
    • 在初始化对象时指定 var myECharts = echarts.init(document.querySelector('#root'),'light')
  • 自定义主题
    • 在主题编辑器编辑主题 主题编辑器
    • 下载主题
    • 引入主题文件
    • 在初始化对象时指定
1.2调色盘
  • 主题调色盘(在主题文件中)

  • 全局调色盘

    • 可在color中配置

      var option = {
          color:[
              '#DD5246',
              '#619FF3',
              '#302C3A',
              '#36CBCE',
              '#4DBCFF',
              ...
          ]
      }
      
  • 局部调色盘

    • 在 series的某个系列通过color配置
  • 全局调色盘覆盖主题调色盘,局部调色盘覆盖全局调色盘

  • 颜色渐变

    • 线性渐变

      itemStyle:{
          color:{
              type:'linear',
              x:0,
              y:0,
              x2:0,
              y2:1,
              colorStops[
                  {offset:0,color:'red'},  //0%处的颜色
                  {offset:1,color:'blue'},  //100%处的颜色
              ],
              globalCoord:false //缺省为 false
          }
      }
      
    • 径向渐变

      itemStyle:{
          color:{
              type:'radial',
              x:0.5,
              y:0.5,
              r:0.5,
              colorStops[
                  {offset:0,color:'red'},  //0%处的颜色
                  {offset:1,color:'blue'},  //100%处的颜色
              ],
              globalCoord:false //缺省为 false
          }
      }
      
1.3样式
  • 直接样式
    • itemStyle
    • textStyle
    • lineStyle
    • areaStyle
    • label
  • 高亮样式
    • 在emphasis中包裹itemStyle、textStyle、lineStyle、areaStyle、label
1.4自适应
  • 监听窗口大小变化

  • 调用ECharts的resize方法

    window.onresize=function(){
        myECharts.resize();
    }
    

2.动画使用

2.1加载动画
  • 显示加载动画 myECharts.showLoading()
  • 隐藏加载动画 myECharts.hideLoading()
2.2增量动画
  • 在数据改变后,重新定义配置并调用 myCharts.setOption(option) (option中只需要包含改变的配置即可)
2.3动画配置
  • 动画效果 animation:true
  • 动画时长 animationDuration:2000 以毫秒为单位,支持回调函数,函数参数arg表示动画编号!
  • 缓动动画 animationEasing:'linear' linear/bounceOut…
  • 动画阈值 animationThreshold:10 某种形式动画数量大于该值就会关闭动画

3.交互API

  • 全局echarts对象

  • echartsInstance对象

    var myECharts = echarts.init(document.querySelector('#root'))
    //全局echarts对象:echarts  echartsInstance对象:myECharts
    
3.1全局echarts对象常用方法
  • init :初始化得到echartsInstance对象

  • registerTheme:注册主题

  • registerMap:注册地图数据

  • connect:将多个图表进行关联,关联后,保存图片自动拼接,刷新、重置、提示框联动、图例选择、数据范围修改等通通关联上

    echarts.connect([myECharts1,myECharts2])
    
3.2echartsInstance对象常用方法
  • setOption:设置及修改配置项

  • resize:重新计算并绘制图表

  • on/off:绑定或者解绑事件处理函数

    • 鼠标事件:

      • click
      • dblclick
      • mousedown
      • mousemove
      • mouseup
      myECharts.on('click',function(arg){
          //通过arg可以获得事件区域的详细信息
      })
      
    • ECharts事件

  • dispatchAction:触发某些行为,即通过js代码模拟用户行为触发相应事件

    myECharts.dispatchAction({
        type:'highlight',  //事件类型
        seriesIndex:0, //图表系列索引
        dataIndex:1  //图表中响应事件的项目索引
    })
    
  • clear:清空当前echartsInstance对象,清空只是清空配置,重新设置配置后图表依然存在

  • dispose:销毁当前echartsInstance对象,销毁后无法再使用

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YFFlame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值