Echarts小感

使用过Echarts之后,感觉Echarts算是个比较好用,API详细的插件,毕竟百度,也遇到几个问题,有需要注意的地方。

第一个是折线图和柱状图的区别,其中比较重要的除了bar和line之外,还有一点:

柱状图:
type : 'category',
data : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月',
'十月', '十一月', '十二月' ]
折线图:
type : 'category',
boundaryGap : false,
 data : ['周一','周二','周三','周四','周五','周六','周日']
关于x轴点线的问题

boundaryGap这个属性,其实决定了,折线图和柱状图的不同,柱状图的特点是在两个端点之间建图,而折线图是在端点处建图。


其二:

关于Echarts的绑定事件:

 

// 路径配置
     require.config({
           paths : {
                echarts : 'http://echarts.baidu.com/build/dist'
           }
     });
      //金额图表 使用
     require([ 'echarts' , 'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
     ], DrawEChart2);
      //显示设置
      var option2 = {
           title : {
                text : '交易金额统计(单位:元)' ,
                subtext : ''
           },
           tooltip : {
                trigger : 'axis'
           },
           toolbox : {
                show : true ,
                feature : {
                     saveAsImage : {
                           show : true
                     }
                }
           },
           legend : {
                data : [ '发包金额' , '支付金额' ]
           },
           calculable : true ,
           xAxis : [ {
                type : 'category' ,
                data : [ '一月' , '二月' , '三月' , '四月' , '五月' , '六月' , '七月' , '八月' , '九月' ,
                            '十月' , '十一月' , '十二月' ]
           } ],
           yAxis : [ {
                type : 'value'
           } ],
           series : [ {
                name : '发包金额' ,
                type : 'bar' ,
                data : [ 0 ]
           }, {
                name : '支付金额' ,
                type : 'bar' ,
                data : [ 0 ]
           } ]
     };
      function DrawEChart2(ec, theme) {
            // 基于准备好的dom,初始化echarts图表
            var myChart = ec.init(document.getElementById( 'main2' ), 'macarons' );
            //回调函数
           ajaxPostForm( "/uc.do?m=ajaxStatisDetails" , {
                jude : $( "#jude" ).val()
           }, function (json) {
                 var options = myChart.getOption();
                 if (json.msg == "C" ) {
                     options.series[0].data = json.result.totalPrice.split( "," );
                      //options.series[1].data =json.result.servicePrice.split(",");
                     options.series[1].data = json.result.compPrice.split( "," );

                } else {
                     options.series[0].data = json.result.biddedMoneySum.split( "," );
                      //options.series[1].data =json.result.payApplyMoneySum.split(",");
                     options.series[1].data = json.result.audPayMoneySum.split( "," );
                }

                myChart.hideLoading();
                myChart.setOption(options);
           });
            var ecConfig = require( 'echarts/config' );
            function eConsole(param) {
                $( "#role1" ).val($( "#jude" ).val());
                 if ($( "#jude" ).val() == 'C' ) {

                }
                 //              alert(option.series[param.seriesIndex].name);
                 //              alert(param.name);
                 //              alert(param.value);
                 else {
                      var month = 0;
                      switch (param.name) {
                      case "一月" :
                           month = 0;
                            break ;
                      case "二月" :
                           month = 1;
                            break ;
                      case "三月" :
                           month = 2;
                            break ;
                      case "四月" :
                           month = 3;
                            break ;
                      case "五月" :
                           month = 4;
                            break ;
                      case "六月" :
                           month = 5;
                            break ;
                      case "七月" :
                           month = 6;
                            break ;
                      case "八月" :
                           month = 7;
                            break ;
                      case "九月" :
                           month = 8;
                            break ;
                      case "十月" :
                           month = 9;
                            break ;
                      case "十一月" :
                           month = 10;
                            break ;
                      case "十二月" :
                           month = 11;
                            break ;
                      default :
                            break ;
                     }
                      var url = null ;
                      switch (option2.series[param.seriesIndex].name) {
                      case "发包金额" :
                           url = "/uc.do?m=uc&d=toSelectedProjectDetailed"
                                     + $( "#jude" ).val();
                            break ;
                      case "支付金额" :
                           url = "/uc.do?m=uc&d=toSelectedProjectAudBalanceDetailed"
                                     + $( "#jude" ).val();
                            break ;
                      case "接包金额" :
                           url = "/uc.do?m=uc&d=toSelectedProjectDetailed"
                                     + $( "#jude" ).val();
                            break ;
                      case "接包收入" :
                           url = "/uc.do?m=uc&d=toSelectedProjectAudBalanceDetailed"
                                     + $( "#jude" ).val();
                            break ;
                      default :
                            break ;
                     }
                     openSelectedProjectDetailed( '0' , 'A' , url, month);
                }
           }
           myChart.on(ecConfig.EVENT.CLICK, eConsole);
            //显示设置

            // 为echarts对象加载数据
           myChart.setOption(option2);
           myChart.hideLoading();
     }

      function submitChart(jude, obj) {
           $( "#ul_data_all li" ).each( function () {
                $( this ).removeClass( "selected" );
           });
           $(obj).parent().attr( "class" , "selected" );
           $( "#jude" ).val(jude);
           $( "#role1" ).val(jude);
            if (jude == "A" ) {
                 //修改金额统计名称
                option2.series[0].name = "发包金额" ;
                option2.series[1].name = "支付金额" ;
                option2.legend.data[0] = "发包金额" ;
                option2.legend.data[1] = "支付金额" ;
           } else if (jude == "B" ) {
                 //修改发包统计名称
                 //修改金额统计名称
                option2.series[0].name = "接包金额" ;
                option2.series[1].name = "接包收入" ;
                option2.legend.data[0] = "接包金额" ;
                option2.legend.data[1] = "接包收入" ;
           } else if (jude == "C" ) {
                 //修改发包统计名称
                 //修改金额统计名称
                 //option2.series[0].name="总成交金额";
                option2.series[0].name = "服务成交金额" ;
                option2.series[1].name = "构件成交金额" ;
                 //option2.legend.data[0]="总成交金额";
                option2.legend.data[0] = "服务成交金额" ;
                option2.legend.data[1] = "构件成交金额" ;
           }
            // 使用
           require([ 'echarts' , 'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
           ], DrawEChart2);
     }

通过js的function来绑定事件,动态地插入数据和改变名称。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值