利用canvas和RGraph作圖


    利用canvas可以直接在頁面中繪制各種復雜的圖形,其中引用到一個Rgraph的插件。

   Rgraph插件使用非常方便,只需幾步就可以完成一個折線圖、餅圖、柱狀圖,或是其中兩者圖形的結合!

  (1) 引用RGraph.common.core.js這個腳本文件,這個是插件的核心腳本,必須引用,否則不可用。但是在測試時,發現有時會報錯,沒用引用jQuery的插件,所以報錯時,需引用這個jquery-1.4.1.js的這個腳本文件;

   (2) 需根據業務需用繪制的圖形引用對應的腳本文件。

        例如繪制柱狀圖需引用RGraph.bar.js腳本文件;

              繪制折線圖需引用RGraph.line.js腳本文件;

              繪制餅圖需引用RGraph.pie.js腳本文件;

              繪制橫向柱狀圖需引用RGraph.hbar.js腳本文件;

              如果要有鼠標移動圖上要有提示信息,需引用RGraph.common.tooltips.js腳本文件;

              如果要鼠標右鍵有菜單項,需引用RGraph.common.context.js腳本文件;

             

   (3) 在頁面中添加canvas元素,代碼如下:

      <canvas id="myCanvas"  width="700" height="400">
         [你的瀏覽器不支持canvas元素]
       </canvas>

   (4) 繪制統計圖的關鍵代碼:

      1.繪制柱狀圖:

          var myGraph = new RGraph.Bar("myCanvas", [1200, 1300, 1400, 1500, 3000, 1900, 2000, 2100, 2500, 2700, 1400, 2600]); //繪制柱狀圖,指定數據
            myGraph.Set("chart.title", "XXXX商場冰箱銷售圖"); //指定統計圖標題
            myGraph.Set("chart.title.xaxis", "銷售月份");  //指定x軸標題
            myGraph.Set("chart.title.yaxis", "銷售台數"); //指定y軸標題
            myGraph.Set("chart.labels", ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']); //指定x軸坐標軸的文字
            myGraph.Set("chart.ylabels.specific", ['3000', '2500', '2000', '1500', '1000', '500']);  //指定y軸坐標軸的文字
            myGraph.Set("chart.labels.above", true); //指定在坐標軸頂部繪制說明銷售數量的文字
            myGraph.Set("chart.background.grid.autofit", true);  //指定網格自動與坐標軸單位對齊
            myGraph.Set("chart.background.grid.autofit.align", true);  //指定網格自動與坐標軸單位對齊
            myGraph.Set("chart.gutter", 65); //指定標簽文字所使用的空間文字

           myGraph.Draw(); //繪制柱狀圖
           

 

   2.繪制折線圖:

     代碼如下:

           var myGraph = new RGraph.Line("myCanvas", [1100, 1420, 1460, 1580, 3090, 1920, 2010, 2120, 2720, 2120, 1720, 2690]); //繪制柱狀圖,指定數據
            myGraph.Set("chart.title", "XXXX商場冰箱銷售圖"); //指定統計圖標題
            myGraph.Set("chart.title.xaxis", "銷售月份");  //指定x軸標題
            myGraph.Set("chart.title.yaxis", "銷售台數"); //指定y軸標題
            myGraph.Set("chart.labels", ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']); //指定x軸坐標軸的文字
            myGraph.Set("chart.ylabels.specific", [ '3000', '2500', '2000', '1500', '1000', '500']);  //指定y軸坐標軸的文字
            myGraph.Set("chart.labels.above", true); //指定在坐標軸頂部繪制說明銷售數量的文字
            myGraph.Set("chart.background.grid.color", 'rgba(238,238,238,1)');  //指定網格自動與坐標軸單位對齊
            myGraph.Set("chart.gutter", 65); //指定標簽文字所使用的空間文字
            myGraph.Draw(); //繪制柱狀圖

 

       

   3.繪制餅圖:

      代碼如下:

         var pie = new RGraph.Pie("myCanvas", [560, 340, 120, 150, 350, 190]); //繪制柱狀圖,指定數據
           pie.Set("chart.title", "XXXX商場冰箱銷售圖"); //指定統計圖標題
           pie.Set("chart.labels", ['長虹(18%)', '康佳(7%)', '格力(12%)', '三星(17%)', '海爾(24%)', '美的(22%)']); //繪制餅圖文字
           pie.Set("chart.key", ['長虹(18%)', '康佳(7%)', '格力(12%)', '三星(17%)', '海爾(24%)', '美的(22%)']); //添加使用圖例
           pie.Set("chart.key.background",'white');
           pie.Set("chart.linewidth", 5);
           pie.Set("chart.strokestyle", 'white'); //繪制餅圖分割線
           pie.Set("chart.tooltips.effect", 'fade');
           pie.Set("chart.tooltips.event", 'onmousemove');
           pie.Set("chart.tooltips", ['長虹(18%)', '康佳(7%)', '格力(12%)', '三星(17%)', '海爾(24%)', '美的(22%)']); //指定工具條上提示信息文字
           pie.Set('chart.highlight.style', '3d');
           //繪制環形餅圖
//           pie.Set('chart.variant', 'donut');
           pie.Draw(); //繪制柱狀圖

 

     

     4.繪制橫向柱狀圖:

     代碼如下:

          var myGraph = new RGraph.HBar("myCanvas", [1100, 1420, 1460, 1580, 3090, 1920, 2010, 2120, 2720, 2120, 1720, 2690]); //繪制柱狀圖,指定數據
            myGraph.Set("chart.title", "XXXX商場冰箱銷售圖"); //指定統計圖標題
            myGraph.Set("chart.title.xaxis", "銷售月份");  //指定x軸標題
            myGraph.Set("chart.title.yaxis", "銷售台數"); //指定y軸標題
            myGraph.Set("chart.labels", ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']); //指定x軸坐標軸的文字
            myGraph.Set("chart.labels.above", true); //指定在坐標軸頂部繪制說明銷售數量的文字
            myGraph.Set("chart.background.grid.autofit", true);  //指定網格自動與坐標軸單位對齊
            myGraph.Set("chart.background.grid.autofit.align", true);  //指定網格自動與坐標軸單位對齊
            myGraph.Set("chart.gutter", 40); //指定標簽文字所使用的空間文字
            myGraph.Draw(); //繪制柱狀圖

 

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM