• echart异步刷新图表,详细配置注释


      echarts刷新技巧:

        echartData.chear();  //当异步改变数据时,配合echartData .setOption(option)才会有动画效果

        echartData.resize();  //当选项卡与echarts一起时,会出现图标宽度不适应,使用resize())即可完美解决

    效果预览:

    直接上代码:(用之前务必要引入echart.js插件)

    <body>
        <!-- 数据选择 -->
        <ul class="tab_menu clearfix">
            <li id="week_data" class="active">7天</li>
            <li id="month_data" >30天</li>
            <li id="time_sec" class="time_box"><input class="form-control" value="选择时间"></li>
        </ul>
    
        <!-- 数据展示 -->
        <div class="chart_show">
            <ul class="chart_menu clearfix">
                <li class="active">转化与用户</li>
                <li>登录与购买</li>
            </ul>
            <ul class="chart_list">
                <li class="active">
                    <div class="chart_box clearfix">
                        <div class="col-xs-6">
                            <div id="chart_box" style=" 100%;height:400px;margin:0 auto;"></div>
                        </div>
                        <div class="col-xs-6"></div>
                    </div>
                </li>
                <li>
                    22222
                </li>
            </ul>
        </div>
      </div>
    
      <script src="js/user.js"></script>
      <script>
        $(function(){
            //页面初始化时加载图表
            mychart1('week');
    
            $("#week_data").on('click',function(){
                //alert('请求7天数据');
                myChart1.clear();            //清空原来的图表
                mychart1('week');  //重新加载图表,之前必须要清空原来的,否则没有动画效果
            });
            $("#month_data").on('click',function(){
                //alert('请求30天数据');
                myChart1.clear();            //清空原来的图表
                mychart1('month');   //重新加载图表,之前必须要清空原来的,否则没有动画效果
            });
            $("#time_sec").on('click',function(){
                //alert('请求时间段的数据');
                myChart1.clear();            //清空原来的图表
                mychart1('time_sec');   //重新加载图表,之前必须要清空原来的,否则没有动画效果
            });
            
        })
    
      </script>
    </body>

    js函数:

    // 基于准备好的dom,初始化echarts实例
    var myChart1 = echarts.init(document.getElementById('chart_box'));
    
    
    function mychart1(time){
        if(time=='week'){
            //请求周数据
            //模周拟数据
            var renShu = [20, 49, 70];
            var zhuanHuaLv = [26, 59, 20];
        }else if(time=='month'){
            //请求月数据
            //模拟月数据
            var renShu = [10, 29, 10];
            var zhuanHuaLv = [6, 29, 35];
        }else{
            //请求时间段数据
            //模拟时间段数据
            alert(time);
            var renShu = [50, 89, 40];
            var zhuanHuaLv = [60, 39, 75];
    
        };
            //配置及数据
            optionWeek = {
                title: {
                    text: '用户转换率',//图表标题
                    subtext: '人数'//数据标题
                },
                tooltip: {
                    trigger: 'axis',    //提示触发类型      'item':数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。
                                                    //'axis':坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
                                                    //'none':什么都不触发。
                    show:true,     //是否显示提示框组件 默认为true
                    axisPointer: {
                        type: 'cross',
                        crossStyle: {
                            color: '#999'
                        }
                    }
                },
                toolbox: {
                    feature: {  //各工具配置项。
                        dataView: {show: true, readOnly: false},
                        magicType: {show: true, type: ['line', 'bar']},
                        restore: {show: true},
                        saveAsImage: {show: true}
                    }
                },
                legend: {
                    data:['人数','转化率']
                },
                xAxis: [
                    {
                        type: 'category',
                        data: ['访客人数','下单人数','支付人数'],
                        axisPointer: {
                            type: 'shadow'
                        }
                    }
                ],
                yAxis: [
                    {
                        type: 'value',
                        name: '人数',
                        min: 0,
                        //max: 250,
                        interval: 50,
                        axisLabel: {
                            formatter: '{value} 人'
                        }
                    },
                    {
                        type: 'value',
                        name: '转化率',
                        min: 0,
                        max: 100,
                        interval: 25,   //纵坐标间隔
                        axisLabel: {
                            formatter: '{value} %'
                        }
                    }
                ],
                series: [
                    {
                        name:'人数',
                        type:'bar',         //bar表示柱状图
                        data:renShu,//数据
                        itemStyle: {    //更多柱状图样式搜索API:series-bar.itemStyle
                      normal: {
                            color: '#FF7400',//改变柱状的颜色
                            borderColor:'red', //描边的颜色:默认#000
                                            borderWidth:0,  //描边的宽度     默认:0
                                            borderType:'solid',  //描边的类型:'dashed', 'dotted','solid'(默认)
                                            /*
                                            更多样式:
                                            barBorderRadius:柱状的圆角
                                            shadowBlur:图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。
                                            shadowColor,shadowOffsetX, shadowOffsetY :图形阴影效果
                                            */
                          }
                        },
                    },
                    {
                        name:'转化率',
                        type:'line',        //line表示折线图
                        data:zhuanHuaLv,
                        itemStyle: {    //更多折线图线条样式搜索API:series-line.itemStyle
                      normal: {
                        color: '#009999',//改变折线点的颜色
                        lineStyle: {    //改变折线样式
                          color: '#009999', //改变折线颜色
                                            3,    //改变线条的粗细
                        },
                                        
                                        
                      }
                    },
                    }
                ]
            };
            // 使用刚指定的配置项和数据显示图表。
            myChart1.setOption(optionWeek);
    }        
  • 相关阅读:
    Mac之雕虫小技
    Python 合并两个字典(Dictionary)中相同key的value的方法
    linux只保留最新n个文件
    自动化测试笔记
    python实现一个判断时间的装饰,并抛出自定义异常
    python在字典列表中计算具有特定键的元素
    canvas游戏
    教为学:Oracle 11g OCP之路(七):数据结构
    教为学:Oracle 11g OCP之路(八):用户权限管理
    ADO.NET入门教程(六) 谈谈Command对象与数据检索
  • 原文地址:https://www.cnblogs.com/LChenglong/p/7400070.html
Copyright © 2020-2023  润新知