百度ECharts图表使用笔记

 

ECharts,一个使用 JavaScript 实现的开源可视化库,可以运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,可高度个性化定制的数据可视化图表。

ECharts 提供了常规的折线图柱状图散点图饼图K线图,用于统计的盒形图,用于地理数据可视化的地图热力图线图,用于关系数据可视化的关系图treemap旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图仪表盘,并且支持图与图之间的混搭。

官方文档传送门:http://echarts.baidu.com/option.html,记得div要设置长宽才能绘制,不然不显示

双y轴

    yAxis: [
            {
                type: 'value',
                name: '数量(百粒)',
                min: 0,
                max: maxY1,
                interval: parseInt(maxY1)/5,
                splitLine : {//去掉网格线
                    show : true
                },
                axisLabel: {
                    formatter: '{value} '
                }
            },
            {
                type: 'value',
                name: '份数(份)',
                min: 0,
                max: maxY2,
                interval: parseInt(maxY2)/5,
                splitLine : {//去掉网格线
                    show : false
                },
                axisLabel: {
                    formatter: '{value} '
                }
            }
        ],
    series: [
            {
                name:'数量',
                type:'line',
                tooltip:{
                  trigger:'axis'
                },
                smooth:true,
                itemStyle : { normal: {label : {show: true}}},
                data:scsl
            },
            {
                name:'份数',
                type:'line',
                tooltip:{
                    trigger:'axis'
                },
                smooth:true,
                yAxisIndex: 1,
                itemStyle : { normal: {label : {show: true}}},
                data:jhfs
            }
        ]

一些参数说明:

  • smooth:true  //可选true和false,默认false,true表示曲线,false表示折线
  • yAxisIndex: 1 //双y轴配置好后,在需要使用右边y轴的地方配置此项
  • itemStyle : { normal: {label : {show: true}}} //是否在折线图上显示数据,true为展示,默认false

坐标轴指示器

    tooltip : {
            trigger: 'axis',
            axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                type : 'line'        // 默认为直线,可选为:'line' | 'shadow'
            }
        },

关于坐标轴指示器,这么解释可能有点苍白,上图吧,图一type为‘shadow’,图二为‘line’

图形不从0刻度开始以及柱状图文字显示位置

设置containLabel为true表示不紧靠着y轴,即柱状图不从0刻度开始

    grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        }

设置柱状图文字是否显示以及文字显示位置,可选项有

  • 'top'

  • 'left'
  • 'right'
  • 'bottom'
  • 'inside'
  • 'insideLeft'
  • 'insideRight'
  • 'insideTop'
  • 'insideBottom'
  • 'insideTopLeft'
  • 'insideBottomLeft'
  • 'insideTopRight'
  • 'insideBottomRight'

看着应该就知道文字位置了

               label: {
                    normal: {
                        show: false,
                        position: 'insideTop'
                    }
                }

自定义图形的颜色

如折线图的折线颜色,柱状图的柱子颜色,放在series要设置的对应图形下

itemStyle: {
                    normal: {
                        color:"#CCC",
                        lineStyle: {
                            color: "#CCC"
                        },
                        label : {
                            show: true
                        }
                    }
                }

堆叠柱状图只显示总和

下面是一个完整的折线图和堆叠柱状图的示例,堆叠柱状图只显示总和,两个数据的和可以通过后台统计返回,也可以在js函数里面格式化,还可以在label{formatter{}}中格式化

function paintCurve(id,XData,scsl,jhfs,maxY1,maxY2) {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById(id));

    // 指定图表的配置项和数据
    option = {
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data:['数量','份数']
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        toolbox: {
        },
        xAxis: {
            type: 'category',
            boundaryGap: true,
            data: XData
        },
        yAxis: [
            {
                type: 'value',
                name: '数量(百粒)',
                min: 0,
                max: maxY1,
                interval: parseInt(maxY1)/5,
                splitLine : {//去掉网格线
                    show : true
                },
                axisLabel: {
                    formatter: '{value} '
                }
            },
            {
                type: 'value',
                name: '份数(份)',
                min: 0,
                max: maxY2,
                interval: parseInt(maxY2)/5,
                splitLine : {//去掉网格线
                    show : false
                },
                axisLabel: {
                    formatter: '{value} '
                }
            }
        ],
        series: [
            {
                name:'数量',
                type:'line',
                tooltip:{
                  trigger:'axis'
                },
                smooth:true,
                itemStyle : { normal: {label : {show: true}}},
                data:scsl
            },
            {
                name:'份数',
                type:'line',
                tooltip:{
                    trigger:'axis'
                },
                smooth:true,
                yAxisIndex: 1,
                itemStyle : { normal: {label : {show: true}}},
                data:jhfs
            }
        ]
    };
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
}
function paintHistogram(id,title,yAxisName,xData,Y,wwc,ywc,total) {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById(id));

    option = {
        title: {
            text: title
        },
        tooltip : {
            trigger: 'axis',
            axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                type : 'line'        // 默认为直线,可选为:'line' | 'shadow'
            }
        },
        legend: {
            x: 'right',
            data: ['未完成数量','已完成数量']
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        xAxis:  {
            type: 'category',
            data: xData,
            axisLabel : {//坐标轴刻度标签的相关设置。
                formatter : function(params){
                        return params;
                }

            }
        },
        yAxis: {
            type: 'value',
            name: yAxisName,
            min: 0,
            max: Y,
            interval: parseInt(Y)/5,
        },
        series: [
            {
                name: '未完成数量',
                type: 'bar',
                stack: '总量',
                label: {
                    normal: {
                        show: false,
                        position: 'insideTop'
                    }
                },
                data: wwc
            },
            {
                name: '已完成数量',
                type: 'bar',
                stack: '总量',
                label: {
                    normal: {
                        show: false,
                        position: 'top'
                    }
                },
                data: ywc
            },
            {
                name: '合计',
                type: 'bar',
                stack: '总量',
                label: {
                    normal: {
                        offset:['50','80'],
                        show: true,
                        position: 'insideBottom',
                        formatter:'{c}',
                        textStyle:{color:"#000"}
                    }
                },
                itemStyle:{
                  normal:{
                      color:'rgba(255,255,255,0)'
                  }
                },
                data: total
            }
        ]
    };
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
}

猜你喜欢

转载自blog.csdn.net/u012667477/article/details/84825803