亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript+Canvas實現(xiàn)簡單的柱狀圖

 更新時間:2023年10月31日 14:12:25   作者:陽樹陽樹  
這篇文章主要為大家詳細介紹了JavaScript如何利用Canvas實現(xiàn)繪制簡單的柱狀圖,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

筆者之所以想要深入了解 Canvas,是因為最近幾次的實習部門都屬于 Data 這個門類下面,所以用echarts之類的圖標庫會很多很多,那么當然要好好學一下其間的底層原理了。

那么讓我們好好聊聊,如何實現(xiàn)一個柱狀圖

如何實現(xiàn)一個柱狀圖

Step1

首先創(chuàng)建一個叫做barchart.html的新文件,并且在其中寫入如下代碼:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <canvas width="500" height="500" id="canvas"></canvas>
  </body>
  <script>
    var data = [16, 68, 20, 30, 54];
  </script>
</html>

Tips 我們知道canvas可以使用fillRect來實現(xiàn)一個矩形。

fillRect(x, y, xWidth, yHeight)

fillRect有四個參數,分別是x的坐標,y的坐標,寬度與高度。

Step2

我們創(chuàng)建文件包含了 canvasscript 元素,對canvas來說,我們標注了他的寬高,它類似于DOM中的DIV元素,我們可以為其添加樣式和移動位置。

data變量呢則是一系列的數據集,我們將用這些變量來畫柱狀圖。

接下來我們將獲取canvas元素,并且繪制一個底層色(灰色)

//get a reference to the canvas 
var canvas = document.getElementById('canvas');  
//get a reference to the drawing context 
var c = canvas.getContext('2d');  
//draw c.fillStyle = "gray"; 
c.fillRect(0,0,500,500); 

Step3

在我們的基本條件都具備了之后,我們可以添加數據了,這里采用一個循環(huán)來添加。

//draw data 
c.fillStyle = "blue"; 
for(var i=0; i<data.length; i++) {     
    var dp = data[i];
    c.fillRect(25 + i*100, 30, 50, dp*5);
} 

效果如下:

但是這里有一個問題,我們的柱狀圖,反了!怎么讓他正起來呢?

Step4

我們知道,fillRect的前兩個參數是我們的起點x和y的坐標,那么為了實現(xiàn)“正”的效果,我們可以移動起點的位置。

//draw data 
c.fillStyle = "blue"; 
for(var i=0; i<data.length; i++) {     
    var dp = data[i];
    c.fillRect(25 + i*100, 500-dp*5 - 30 , 50, dp*5);
} 

效果如下:

是不是看起來很舒服啦?

但是現(xiàn)在還有一個問題,我們的坐標軸去哪了???

Step5

現(xiàn)在,讓我們一起來畫一個坐標軸

首先需要畫x軸和y

//draw axis lines 
c.fillStyle = "black"; 
c.lineWidth = 2.0; 
c.beginPath(); 
c.moveTo(30,10); 
c.lineTo(30,460); 
c.lineTo(490,460); 
c.stroke(); 

然后我們要新增y軸標記點和文本

//draw text and vertical lines 
c.fillStyle = "black"; 
for(var i=0; i<6; i++) {
    c.fillText((5-i)*20 + "",4, i*80+60);
    c.beginPath();
    c.moveTo(25,i*80+60);
    c.lineTo(30,i*80+60);
    c.stroke(); 
} 

最后新增x軸文本

var labels = ["JAN","FEB","MAR","APR","MAY"]; 
//draw horiz text 
for(var i=0; i<5; i++) {     
    c.fillText(labels[i], 50+ i*100, 475);
} 

效果如下:

看起來有部分問題,讓我們再來做一些調整!

Step6

將背景色改成白色 & 把起點做一下變更。

//draw background 
c.fillStyle = "white"; 
c.fillRect(0,0,500,500);  
//draw data 
c.fillStyle = "blue"; 
for(var i=0; i<data.length; i++) {    
    var dp = data[i];     
    c.fillRect(40 + i*100, 460-dp*5 , 50, dp*5); 
} 

噔噔噔噔,我們的柱狀圖就這樣寫好啦~

到此這篇關于JavaScript+Canvas實現(xiàn)簡單的柱狀圖的文章就介紹到這了,更多相關JavaScript Canvas柱狀圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論