chatr.js 制作漂亮的图表

本文介绍了一个使用HTML、CSS和JavaScript实现的成绩图表展示案例。通过AJAX从服务器获取数据,并利用Chart.js库绘制柱状图,展示了A班的成绩分布情况。
  1. html代码
    1. <!DOCTYPE html>  
    2. <html lang="zh-cn">  
    3.   
    4. <head>  
    5.     <meta http-equiv="Content-Type" charset="UTF-8" />  
    6.     <title>案例显示</title>  
    7.     <!--     <link rel="stylesheet" href="../css/ranking.css" /> -->  
    8.   
    9.   
    10. <style type="text/css">  
    11.     *  
    12. {  
    13.     margin: 0px;  
    14.     padding: 0px;  
    15. }  
    16.   
    17. body  
    18. {  
    19.     background: #EEE;  
    20.     text-align:center;  
    21. }  
    22.   
    23. #drawCanvas  
    24. {  
    25.     background: white;  
    26.     border: 1px solid #CCC;  
    27. }  
    28. </style>  
    29. </head>  
    30.   
    31. <body>  
    32.     <script type="text/javascript" src="../js/Chart.js"></script>  
    33.         <script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script>  
    34.     <script type="text/javascript" src="../js/index.js"></script>  
    35.     <p>A班成绩表</p>  
    36.     <canvas id="myChart" width="600" height="400"></canvas>  
    37. </body>  
    38.   
    39. </html> 

数据格式

 { [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

]}






  1. js代码
  2.  window.onload=function()  
  3. {  
  4.      getdatafromDB();  
  5. }  
  6.   
  7. var getdatafromDB = function(){  
  8.     $.ajax({  
  9.         url: "../php/index.php",  
  10.         type: "POST",  
  11.         dataType:"json",  
  12.          error: function(){    
  13.              alert('Error loading XML document');    
  14.          },    
  15.         success:function(data){  
  16.             console.info(data);  
  17.              bar(data);  
  18.         }  
  19.     });  
  20. }  
  21. function bar(Data)  
  22. {  
  23.     if(Data.length==null || Data.length == 0)  
  24.         return;  
  25.     var barData={};  
  26.     barData.labels=[];  
  27.     barData.datasets=[];  
  28.     var temData={};  
  29.     temData.data=[];  
  30.     temData.fillColor"rgba(151,187,205,0.5)";  
  31.     temData.strokeColor = "rgba(151,187,205,0.8)";  
  32.     temData.highlightFill="rgba(151,187,205,0.75)",  
  33.     temData.highlightStroke"rgba(151,187,205,1)";  
  34.       
  35.     for(var i=0;i<Data.length;i++)  
  36.     {  
  37.         barData.labels.push(Data[i].label);  
  38.         temData.data.push(Data[i].value);  
  39.     }  
  40.     barData.datasets.push(temData); //封装一个规定格式的barData。  
  41.     console.info(barData);  
  42.     /     /// 动画效果  
  43.     var options = {             
  44.         scaleOverlay: false,  
  45.         scaleOverride: false,  
  46.         scaleSteps: null,  
  47.         scaleStepWidth: null,  
  48.         scaleStartValue: null,    
  49.         scaleLineColor: "rgba(0,0,0,.1)",    
  50.         scaleLineWidth: 1,     
  51.         scaleShowLabels: true,  
  52.         scaleLabel: "<%=value%>",  
  53.         scaleFontFamily: "'Arial'",     
  54.         scaleFontSize: 12,  
  55.         scaleFontStyle: "normal",     
  56.         scaleFontColor: "#666",  
  57.         scaleShowGridLines: true,  
  58.         scaleGridLineColor: "rgba(0,0,0,.05)",  
  59.         scaleGridLineWidth: 1,  
  60.         bezierCurve: true,  
  61.         pointDot: true,  
  62.         pointDotRadius: 3,  
  63.         pointDotStrokeWidth: 1,  
  64.         datasetStroke: true,  
  65.         datasetStrokeWidth: 2,  
  66.         datasetFill: true,  
  67.         animation: true,  
  68.         animationSteps: 60,  
  69.         animationEasing: "easeOutQuart",                
  70.         onAnimationComplete: null  
  71.     }  
  72.     var ctx  = document.getElementById("myChart").getContext('2d');  
  73.     myChart = new Chart(ctx).Bar(barData,options, { //重点在这里  
  74.         responsive : true  
  75.     });  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值