echarts X轴过长时 滑动显示

主要是对 dataZoom 属性的运用,没什么难点。只需注意一点,如果遇到加了这个属性还是不出现滑动情况的,多半是用的echarts.min.js  不支持此属性,去官网找最新版替换即可


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        
        <style type="text/css">
            .electricDescribeYear {
                width: 400px;
                height: 400px;
                margin: 0 auto;
                z-index: 99;
                top: -52px;
            }
        </style>
    </head>
    <body>
        <div id="barDouble" class="electricDescribeYear"></div>
        
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script type="text/javascript" src="js/echarts.min.js"></script>
        <script type="text/javascript">
               setBarDoubleChart('barDouble');
                  // 柱状图 双 --- 总用电量分布(年)
                function setBarDoubleChart(data) {
                     var myBarDoubleChart = echarts.init(document.getElementById('barDouble'));
                     
                     var colors = ['rgb(72,177,248)','rgb(170,135,201)']
                     var xAxisData = ['1月月月月月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月','13月','14月','15月','16月','17月','18月','19月'];
                     var ydata0 = [1,22,30,40,54,30,85,35,90,57,22,30,40,54,30,85,35,90,57];
                     var ydata1 = [10,20,30,40,50,30,80,30,90,50,20,30,40,50,30,80,30,90,50];
                     var series = [
                         {
                             data:ydata0,
                             name:"計劃進度"
                         },{
                             data:ydata1,
                             name:"實際進度"
                         }
                     ]
                    var endPercent = (6 / xAxisData.length) * 100;
                    // 指定图表的配置项和数据
                    option1 = {
                        title : {
                            text: '某地区蒸发量和降水量',
                            subtext: '纯属虚构'
                        },
                        tooltip : {
                            trigger: 'axis'
                        },
                        legend: {
                            data:['蒸发量','降水量']
                        },
                        toolbox: {
                            show : true,
                            feature : {
                                dataView : {show: true, readOnly: false},
                                magicType : {show: true, type: ['line', 'bar']},
                                restore : {show: true},
                                saveAsImage : {show: true}
                            }
                        },
                        dataZoom: [//给x轴设置滚动条  
                           {  
                               start:0,//默认为0  
                               end: endPercent,  
                               type: 'slider',  
                               show: true,  
                               xAxisIndex: [0],  
                               handleSize: 0,//滑动条的 左右2个滑动条的大小  
                               height: 8,//组件高度  
                               left: 50, //左边的距离  
                               right: 40,//右边的距离  
                               bottom: 26,//右边的距离  
                               handleColor: '#ddd',//h滑动图标的颜色  
                               handleStyle: {  
                                   borderColor: "#cacaca",  
                                   borderWidth: "1",  
                                   shadowBlur: 2,  
                                   background: "#ddd",  
                                   shadowColor: "#ddd",  
                               },  
                               fillerColor: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{  
                                   //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变  
                                   //给第一个设置0,第四个设置1,就是垂直渐变  
                                   offset: 0,  
                                   color: '#1eb5e5'  
                               }, {  
                                   offset: 1,  
                                   color: '#5ccbb1'  
                               }]),  
                               backgroundColor: '#ddd',//两边未选中的滑动条区域的颜色  
                               showDataShadow: false,//是否显示数据阴影 默认auto  
                               showDetail: false,//即拖拽时候是否显示详细数值信息 默认true  
                               handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',  
                               filterMode: 'filter'
                           },  
                           //下面这个属性是里面拖到  
                           {  
                               type: 'inside',  
                               show: true,  
                               xAxisIndex: [0],  
                               start: 0,//默认为1  
                               end: 50
                           },  
                       ],
                        calculable : true,
                        xAxis : {
                            type : 'category',
                            data : ['1月月月月月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月','13月','14月','15月','16月','17月'],
                            axisLabel: {  
                                 interval: 0,  
                                 formatter:function(value)  
                                 {  
                                     var ret = "";//拼接加\n返回的类目项  
                                     var maxLength = 2;//每项显示文字个数  
                                     var valLength = value.length;//X轴类目项的文字个数  
                                     var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数  
                                     if (rowN > 1)//如果类目项的文字大于3,  
                                     {  
                                         for (var i = 0; i < rowN; i++) {  
                                             var temp = "";//每次截取的字符串  
                                             var start = i * maxLength;//开始截取的位置  
                                             var end = start + maxLength;//结束截取的位置  
                                             //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧  
                                             temp = value.substring(start, end) + "\n";  
                                             ret += temp; //凭借最终的字符串  
                                         }  
                                         return ret;  
                                     }  
                                     else {  
                                         return value;  
                                     }  
                                 }  
                            }
                        },
                        yAxis : [
                            {
                                type : 'value'
                            }
                        ],
                        series : [
                            {
                                name:'蒸发量',
                                type:'bar',
                                data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3, 4.9, 7.0, 23.2, 25.6, 76.7],
                                markPoint : {
                                    data : [
                                        {type : 'max', name: '最大值'},
                                        {type : 'min', name: '最小值'}
                                    ]
                                }
                            },
                            {
                                name:'降水量',
                                type:'bar',
                                data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3, 4.9, 7.0, 23.2, 25.6, 76.7],
                                markPoint : {
                                    data : [
                                        {name : '年最高', value : 182.2, xAxis: 7, yAxis: 183},
                                        {name : '年最低', value : 2.3, xAxis: 11, yAxis: 3}
                                    ]
                                }
                            }
                        ]
                    };
                    // 使用刚指定的配置项和数据显示柱状图图表。
                    myBarDoubleChart.setOption(option1);
                }
               
        </script>
    </body>
</html>



  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值