zoukankan      html  css  js  c++  java
  • AngularJS引入Echarts的Demo

    最近要用到图表展示,想了想,还是首选Echarts,HighCharts和D3.js备用吧,

    而项目中也用到了AngularJS,所以需要把Echarts引入到AngularJs中一起使用,

    试了试,最方便的还是用指令,(虽然指令有点不好调,用了再说)。

    1、引入angular.js 

    2、引入echarts.js

    3、引入jquery.js---可以省略

    4、直接上代码:

      1 <!DOCTYPE html >
      2   <head>
      3     <meta charset="utf-8">
      4     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
      5     <title>Echarts--柱状图与饼图</title>    
      6     <link rel="stylesheet" href="../jc/jquery-ui.css">
      7      <script type="text/javascript" src="../jc/jquery.min.js"></script>
      8     <script type="text/javascript" src="../jc/jquery-ui.min.js"></script>
      9     <script type="text/javascript" src="../jc/angular.min.js"></script>
     10       <script type="text/javascript" src="../3rd/echarts/echarts.js"></script>
     11       <style>
     12           html{
     13               height:100%;
     14           }
     15           
     16       </style>
     17   </head>
     18 
     19   <body data-ng-app="MyApp" style="height:100%;">
     20     <div data-ng-controller='MyCtrl' style=" 100%;height: 100%;">
     21     <h3>Echarts柱状图与饼图---指令directive</h3>        
     22     
     23     <div align="center" style=" 80%; height:100%;"> 
     24         <div align="left">
     25             <select data-ng-model="chart"
     26             data-ng-options="x for (x, y) in myCharts"
     27             data-ng-change = "showChange(chart)"
     28             >
     29             </select>        
     30         </div>
     31         
     32         <div data-ng-show="show" bar-charts  data-source='groupData' style=" 100%;height: 80%;"></div>
     33         <div data-ng-show="!show" pie-charts  data-source='group' data-ng-repeat="group in groupData" 
     34                 style=" 30%;height:30%;float: left;">
     35         </div>
     36     </div>
     37     </div>
     38     <script>
     39       angular.module('MyApp', [])
     40       .controller('MyCtrl', function($scope) {
     41           $scope.groupData = ['测试栏目1','测试栏目2','测试栏目3','测试栏目4','测试栏目5','测试栏目6']; 
     42           $scope.chart = 0;
     43           $scope.show = true;
     44           $scope.myCharts = {
     45                 "柱状图":0,
     46                 "饼图":1
     47           };
     48           $scope.showChange = function(chart){
     49               if(chart==0){
     50                    $scope.show = true;
     51               }else{
     52                   $scope.show = false;
     53               }    
     54             };
     55       })
     56       .directive('barCharts',function(){
     57         return{
     58             restrict:'AE',              
     59               scope :{
     60                   source:'='
     61               },
     62               template:'<div>这是柱图</div>',
     63               controller: function($scope){
     64               },
     65               link:function(scope,element,attr){
     66                   console.log(scope.source);
     67                   var chart =  element.find('div')[0];
     68                   var parent = element['context'];
     69               //    console.log(parent.clientHeight+":"+parent.clientWidth);
     70                   chart.style.width =parent.clientWidth+'px';
     71                   chart.style.height =parent.clientHeight+'px';
     72                   
     73                   var myChart = echarts.init(chart);
     74                   var option = {
     75                         title:{
     76                             text:'工作空间使用情况'
     77                         },
     78                         tooltip:{
     79                             trigger:'axis',
     80                             axisPointer:{
     81                                 type:'shadow'
     82                             }
     83                         },
     84                         legend: {
     85                             //data:['正常','警告','预警','剩余']
     86                         },
     87                         gird:{
     88                             left: '5%',
     89                             right: '5%',
     90                             bottom: '5%',
     91                             containLabel: true
     92                         },
     93                         xAxis:{
     94                             type:'value'
     95                         },
     96                         yAxis:{
     97                             type: 'category',
     98                             data: scope.source  //['测试栏目1','测试栏目2','测试栏目3','测试栏目4','测试栏目5','测试栏目6']
     99                         },
    100                         series:[
    101                             {
    102                                 name:'已使用',
    103                                 type:'bar',
    104                                 stack:'存储空间',
    105                                 label:{
    106                                     normal:{
    107                                         show:true,
    108                                         position:'insideRight'
    109                                     }
    110                                 },
    111                                 barWidth:'80%',
    112                                 data:[100,200,300,260,50,120]
    113                             },
    114                             {
    115                                 name:'剩余',
    116                                 type:'bar',
    117                                 stack:'存储空间',
    118                                 label:{
    119                                     normal:{
    120                                         show:true,
    121                                         position:'insideRight'
    122                                     }
    123                                 },
    124                                 barWidth:'80%',
    125                                 data:[200,100,2,80,200,180]
    126                             }
    127                         ]
    128                     };
    129                   myChart.setOption(option);
    130                   myChart.resize();
    131               }
    132         };  
    133       })
    134       .directive('pieCharts',function(){
    135           return{
    136                 restrict:'AE',              
    137                   scope :{
    138                       source:'='
    139                   },
    140                   template:'<div>这是饼图</div>',
    141                   controller: function($scope){
    142                   },
    143                   link:function(scope,element,attr){
    144                       
    145                       var chart =  element.find('div')[0];
    146                       var parent = element['context'];
    147                       //console.log(parent.clientHeight+":"+parent.clientWidth);
    148                       chart.style.width =parent.clientWidth+'px';
    149                       chart.style.height =parent.clientHeight+'px';
    150                       
    151                       var myChart = echarts.init(chart);
    152                        var option = {
    153                           backgroudColor:'#F2F2F2',
    154                            title : {
    155                               text: '某一个栏目',
    156                               x:'center',
    157                               y:'bottom'
    158                           },
    159                           tooltip:{
    160                               trigger:'item',
    161                               formatter:'{a}<br/>{b} {c}({d}%)'
    162                           },
    163                           series:[
    164                                 {
    165                                     name:'空间使用',
    166                                     type:'pie',
    167                                     radius:'55%',
    168                                     center:['50%','60%'],
    169                                     data:[
    170                                         {value:50,name:'已使用'},
    171                                         {value:450,name:'未使用'}
    172                                     ],
    173                                     itemStyle:{
    174                                         emphasis: {
    175                                             shadowBlur: 10,
    176                                             shadowOffsetX: 0,
    177                                             shadowColor: 'rgba(0, 0, 0, 0.5)'
    178                                         }
    179                                     }
    180                                 }
    181                           ]
    182                        };
    183                       myChart.setOption(option);
    184                       myChart.resize();
    185                   }
    186           };
    187       });
    188     </script>
    189   </body>
    190 
    191 </html>

    一个Demo,就不按格式写了!

    以上!

    自定义数据展示颜色:

    series:[
    {
    name:'已使用',
    type:'bar',
    stack:'存储空间',
    label:{
    normal:{
    show:true,
    position:'insideRight'
    }
    },
    barWidth:'80%',
    data:[
    {
    value:100,
    itemStyle:{
    normal:{
    color: 3>2 ? '#CDCD19':'#00FA67'
    }
    }
    },
    {
    value:200,
    itemStyle:{
    normal:{
    color: 1>2 ? '#CDCD19':'#00FA67'
    }
    }
    },

    {
    value:300,
    itemStyle:{
    normal:{
    color: 3>2 ? '#CDCD19':'#00FA67'
    }
    }
    },
    {
    value:260,
    itemStyle:{
    normal:{
    color: 1>2 ? '#CDCD19':'#00FA67'
    }
    }
    },
    50,120]
    },
    {
    name:'剩余',
    type:'bar',
    stack:'存储空间',
    label:{
    normal:{
    show:true,
    position:'insideRight'
    }
    },
    itemStyle:{
    normal:{
    color:'#CBCBCB'
    }
    },
    barWidth:'80%',
    data:[200,100,2,80,200,180]
    }
    ]

    -------------------------------

    series:[
    {
    name:'空间使用',
    type:'pie',
    radius:'55%',
    center:['50%','60%'],
    data:[
    {value:50,name:'已使用',itemStyle:{
    normal:{
    color:'#324A5B'
    }
    }},
    {value:450,name:'未使用',itemStyle:{
    normal:{
    color:'#C13530'
    }
    }}
    ],
    itemStyle:{
    emphasis: {
    shadowBlur: 10,
    shadowOffsetX: 0,
    shadowColor: 'rgba(0, 0, 0, 0.5)'
    }
    }
    }
    ]

  • 相关阅读:
    Python超简单的HTTP服务器
    浅析python的string.Template
    virtualenv python虚拟环境搭建
    python 爬虫-sohu抓小说
    python RE模块
    linux 修改系统时间
    Linux下查看文件和文件夹大小
    python os模块使用方法
    python文件操作 seek(),tell()
    python encode decode unicode区别及用法
  • 原文地址:https://www.cnblogs.com/liangblog/p/5842934.html
Copyright © 2011-2022 走看看