zoukankan      html  css  js  c++  java
  • Echarts动态加载柱状图和折线图混合展示的实例

    一、引入echarts文件:

    <script type="text/javascript" src="echarts.js"></script>

    二、HTML代码:

    <div style=" 100%; height: 400px;" id="main">
    </div> 

    三、JS代码(加载图表值的方法):

    /**
    * @param {String} p_chart 初始化报表的id
    * @param {Object} p_obj 初始化报表的数据对象
    * @param {String} p_obj.xAxis 初始化报表x轴的数据
    * @param {String} p_obj.barData 初始化报表的柱状图数据列值
    * @param {String} p_obj.lineData 初始化报表的折线图数据列值
    */
    function _loadChart(p_chart, p_obj) {    // 加载图表的方法
        if(this[p_chart]) {    // 判断该图表是否存在,存在即只替换值
             var option = {
                 xAxis: {
                      data: p_obj.xAxis
                 },
                 series: {[
              {data: p_obj.barData},
              {data: p_obj.lineData}
                 ]}
              }      
        } else {
            var option = {
                tooltip: {
                    trigger: 'item',
                    axisPointer: {    // 坐标轴指示器,坐标轴触发有效   
                        type: 'shadow'    // 默认为直线,可选‘line | shadow’
                    }
                },
                calculable: true,
                legend: {
                    show: true,
                    orient: 'horizontal',
                    x: 'right',       //x轴方向上的位置
                    y: 'top',    //y轴方向上的位置
                    textStyle: {
                        color: '#2DFCFF',
                        fontSize: 14,
                        fontFamily: 'MicroSoft YaHei'
                    },
                    itemGap: 20    //legend之间的间距,默认为10
                },
                xAxis: [{
                    type: 'category',
                    top: 10,
                    axisTick: false,    // 坐标轴小标记,默认为true
                    axisLabel: {
                        textStyle: {
                            color: '#CCC',
                            fontSize: 12,
                            fontFamily: 'Microsoft YaHei'
                        }
                    },
                    axisLine: {
                        lineStyle: {
                            color: '#00F3FF'
                        }
                    },
                    data: p_obj.xAxis
                }],
                yAxis: [{
                    type: 'value',
                    axisTick: false,
                    axisLabel: {
                        textStyle: {
                            color: '#CCC',
                            fontSize: 12,
                            fontFamily: 'Microsoft YaHei'
                        }
                    },
                    axisLine: {
                        lineStyle: {
                            color: '#00F3FF'
                        }
                    },
                    spllitLine: false    // y轴分割线,默认为true
                },{
                    show: false
                }],
                series: [{
                    name: '实有人口',
                    type: 'bar',
                    yAxisIndex: 0,    // 对应y轴(yAxis)第一组数据
                    barWidth: 20,
                    itemStyle: {
                        normal: {
                  barBorderRadius: 30,    //柱子的圆角
                            color: new echarts.graphic.LinearGradient(    //柱子的渐变色
                                  0, 0, 0, 1, [{
                                      offset: 0,
                                      color: 'rgba(249, 241, 4, 1)'
                                  },
                                  {
                                      offset: 1,
                                      color: 'rgba(249, 241, 4, 0)'
                                  }]  
                            )
                        }  
                    },
                    data: p_obj.barData
                },{
                    name: '报警数',
                    type: 'line',    // 折线图
                    yAxisIndex: 1,    // 对应y轴(yAxis)第二组数据
                    symbol: 'emptyCircle',    // 标记的图形,包括'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow',也可以通过'image://url'设置为图片。可以通过 'path://'将图标设置为任意的矢量路径。
                    symbolSize: 10,    //标记的大小。可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10。
                    label: {
                        normal: {
                            show: false,
                            position: 'top'
                        }
                    },
                    itemStyle: {
                        normal: {
                           color: '#FAE200'
                        }
                    },
                    lineStyle: {    //线条样式
                        normal: {
                            3,
                           shadowColor: 'rgba(0, 0, 0, 0.4)',   //阴影颜色
                           shadowBlur: 10,    //图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。
                           shadowOffsetY: 10    //阴影垂直方向上的偏移距离
                        }
                    },
             data: p_obj.lineData
                  }]     
            };
            
             this[p_chart] = echarts.init(document.getElementById(p_chart));    
        }
    
         this[p_chart].setOption(option);    // 设置报表数据
    } 

     四、JS方法(调用加载图表方法):

    _loadChart("main", {
        xAxis: ['车辆卡口', '人员卡口'],
        barData: [(Math.random() * 100).toFixed(0), (Math.random() * 100).toFixed(0)],
        lineData: [(Math.random() * 100).toFixed(0), (Math.random() * 100).toFixed(0)]
    })
  • 相关阅读:
    web前端的面试真题
    web前端面试真题! 面试的经历和回答只做参考1
    web前端面试真题! 面试的经历和回答只做参考
    html面试资料
    angluar.js的核心介绍
    解决 Chrome支持小于12px 的文字
    div居中效果出现的问题和解决方法
    li和li之间的bug解决方法
    前端面试题笔试考题和答案
    html5新增的标签和使用的方法
  • 原文地址:https://www.cnblogs.com/minozMin/p/8317529.html
Copyright © 2011-2022 走看看