canvans絵画柱状図
1940 ワード
前回はcanvas絵画の基礎知識を学びましたが、今日はcanvasの知識で柱状図を描きましょう.
//
// body
var c = document.getElementById('mycanvas');//
var stx = c.getContext('2d');// 。
var data = {
x: [' ', ' ', ' ', ' ', ' ', ' '],
y: ['0', '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000'],
val: ['300', '210', '120', '560', '800', '660'],
col: ['red', 'green', 'blue', 'skyblue', 'black', 'pink']
}//
//xy
//x
stx.translate(80, 600);
stx.beginPath();//
stx.moveTo(0, 0);//x
stx.lineTo(500, 0);//
stx.strokeStyle = 'blue';//
stx.stroke();//
stx.closePath()//
//y
stx.beginPath();
stx.moveTo(0, 0);
stx.lineTo(0, -600);
stx.strokeStyle = 'blue';
stx.stroke();
stx.closePath();
stx.textBaseline = 'middle';//
for (var j in data.y) {
stx.beginPath();
stx.fillText(data.y[j], -30, -j * 50);
stx.moveTo(0, -j * 50);
stx.lineTo(-5, -j * 50);
stx.stroke();
stx.closePath()
}
stx.textAlign='center';//
for(var i=0;i<data.val.length;i++){
stx.beginPath();
stx.moveTo((i+1)*60,0);
stx.lineTo((i+1)*60,-data.val[i]/2);
stx.lineWidth=40; //
stx.strokeStyle=data.col[i];
stx.stroke();
stx.closePath();
stx.beginPath();
stx.fillText(data.x[i],(i+1)*60,10); //
stx.fillText(data.val[i],(i+1)*60,-data.val[i]/2-10) //
}