ECharts入门(一)

一、简单入门

1.从官网下载echarts

http://echarts.baidu.com/download.html

2.引入echarts

  • 3.0以上的版本

    
    
        
        
        
    
    
    

3.绘制柱状图表

  • 首先在页面上设置一个显示区域

    
        
        
  • 然后通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图

     
    

二、自定义ECharts

  • 一般官方定制的echarts会满足绝大部分业务需求,但有时也需要自定义一些echarts。
  1. 在线自定义构建:比较方便。
  2. 使用 echarts/build/build.js 脚本自定义构建:比在线构建更灵活一点,并且支持多语言。
  3. 直接使用构建工具(如 rollup、webpack、browserify)自己构建:也是一种选择。

三、饼状图

  • 最简单的图表,不需要x y 轴。

    myChart.setOption({
        series : [
            {
                name: '访问来源',
                type: 'pie',
                radius: '55%',
                data:[
                    {value:235, name:'视频广告'},
                    {value:274, name:'联盟广告'},
                    {value:310, name:'邮件营销'},
                    {value:335, name:'直接访问'},
                    {value:400, name:'搜索引擎'}
                ]
            }
        ]
    })
    
  • 设置样式

    option = {
        //设置全局背景色
        backgroundColor: '#2c343c',
        visualMap: {
                // 不显示 visualMap 组件,只用于明暗度的映射
                show: false,
                // 映射的最小值为 80
                min: 80,
                // 映射的最大值为 600
                max: 600,
                inRange: {
                    // 明暗度的范围是 0 到 1
                    colorLightness: [0, 1]
                }
            },
        series : [
            {
                name: '访问来源',
                type: 'pie',
                radius: '55%',
                data:[
                    {value:235, name:'视频广告'},
                    {value:274, name:'联盟广告'},
                    {value:310, name:'邮件营销'},
                    {value:335, name:'直接访问'},
                    {
                        value:400,
                        name:'搜索引擎',
                        //设置每个扇形的样式
                        itemStyle: {
                            color: '#c23531'
                        }
                    },
                ],
                //设置成南丁格尔图
                roseType: 'angle',
                //设置全局字体样式
                 textStyle: {
                    color: 'rgba(255, 255, 255, 0.3)'
                }
                //设置每个系利的字体样式
                  label: {
                    normal: {
                        textStyle: {
                            color: 'rgba(255, 255, 255, 0.3)'
                        }
                    }
                },
               //设置视觉引导线的样式
                labelLine: {
                    normal: {
                        lineStyle: {
                            color: 'rgba(255, 255, 255, 0.3)'
                        }
                    }
                },
               //设置扇形的样式
                itemStyle: {
                        // 阴影的大小
                        shadowBlur: 200,
                        // 阴影水平方向上的偏移
                        shadowOffsetX: 0,
                        // 阴影垂直方向上的偏移
                        shadowOffsetY: 0,
                        // 阴影颜色
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    // 设置扇形的颜色
                         color: '#c23531',
                    }
                }
            }
        ]
    };
    

四、ECharts 中的样式简介

1.颜色主题

var chart = echarts.init(dom, 'light');

var chart = echarts.init(dom, 'dark');

  • 设置json格式的主题

    // 假设主题名称是 "vintage"  xxx/xxx/ 代表路径
    $.getJSON('xxx/xxx/vintage.json', function (themeJSON) {
        echarts.registerTheme('vintage', JSON.parse(themeJSON))
        var chart = echarts.init(dom, 'vintage');
    });
    
  • 设置js格式的主题

    // HTML 引入 vintage.js 文件后(假设主题名称是 "vintage")
    var chart = echarts.init(dom, 'vintage');
    

2.调色盘

  • 在option中全局设置

    option = {
        // 全局调色盘。
        color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83',  '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],
    
        series: [{
            type: 'bar',
            // 此系列自己的调色盘。
            color: ['#dd6b66','#759aa0','#e69d87','#8dc1a9','#ea7e53','#eedd78','#73a373','#73b9bc','#7289ab', '#91ca8c','#f49f42'],
            ...
        }, {
            type: 'pie',
            // 此系列自己的调色盘。
            color: ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'],
            ...
        }]
    }
    

3.直接设置样式

  • 鼠标悬浮时的高亮样式

    //4.0版本的写法
    option = {
        series: {
            type: 'scatter',
    
            // 普通样式。
            itemStyle: {
                // 点的颜色。
                color: 'red'
            },
            label: {
                show: true,
                // 标签的文字。
                formatter: 'This is a normal label.'
            },
    
            // 高亮样式。
            emphasis: {
                itemStyle: {
                    // 高亮时点的颜色。
                    color: 'blue'
                },
                label: {
                    show: true,
                    // 高亮时标签的文字。
                    formatter: 'This is a emphasis label.'
                }
            }
        }
    }
    //4.0之前的版本写法,但是不推荐
    option = {
        series: {
            type: 'scatter',
    
            itemStyle: {
                // 普通样式。
                normal: {
                    // 点的颜色。
                    color: 'red'
                },
                // 高亮样式。
                emphasis: {
                    // 高亮时点的颜色。
                    color: 'blue'
                }
            },
    
            label: {
                // 普通样式。
                normal: {
                    show: true,
                    // 标签的文字。
                    formatter: 'This is a normal label.'
                },
                // 高亮样式。
                emphasis: {
                    show: true,
                    // 高亮时标签的文字。
                    formatter: 'This is a emphasis label.'
                }
            }
        }
    }
    

4.通过 visualMap 组件设定样式

  • visualMap是视觉映射组件,提供了以下视觉元素:

    图形类别(symbol)图形大小(symbolSize) 颜色(color)透明度(opacity)色调(colorHue)

    颜色透明度(colorAlpha)颜色明暗度(colorLightness)颜色饱和度(colorSaturation)

五、异步数据加载和更新

1.异步加载

  • 图表初始化后不管任何时候通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项

    var myChart = echarts.init(document.getElementById('main'));
    
    $.get('data.json').done(function (data) {
        myChart.setOption({
            title: {
                text: '异步数据加载示例'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        });
    });
    
  • 先设置完其它的样式,显示一个空的直角坐标轴,然后获取数据后填入数据。

    var myChart = echarts.init(document.getElementById('main'));
    // 显示标题,图例和空的坐标轴
    myChart.setOption({
        title: {
            text: '异步数据加载示例'
        },
        tooltip: {},
        legend: {
            data:['销量']
        },
        xAxis: {
            data: []
        },
        yAxis: {},
        series: [{
            name: '销量',
            type: 'bar',
            data: []
        }]
    });
    
    // 异步加载数据
    $.get('data.json').done(function (data) {
        // 填入数据
        myChart.setOption({
            xAxis: {
                data: data.categories
            },
            series: [{
                // 根据名字对应到相应的系列
                name: '销量',
                data: data.data
            }]
        });
    });
    

2.loading动画

  • 有时数据加载时间过长的话,需要一些过场动画。

    //显示加载动画
    myChart.showLoading();
    $.get('data.json').done(function (data) {
       //隐藏加载动画
        myChart.hideLoading();
        myChart.setOption(...);
    });
    

3.数据的动态更新

  • 定时获取数据,setOption 填入数据,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。

你可能感兴趣的:(ECharts入门(一))