//Configuracoes var dashboard = document.getElementById('grafico_linhas'); var docHeight = document.documentElement.clientHeight- 20; // - 20 jsFiddle hack var docWidth = document.documentElement.clientWidth - 20; dashboard.height = docHeight; dashboard.width = docWidth; var ctx; var _y = docHeight-20;// jsfiddle hack // objeto para ser preenchido do tipo Grafico de Linhas var grafico = { espessura: 10, cor: '#000', gap: 5, dataProvider:null, init: function(){ ctx = dashboard.getContext('2d'); ctx.beginPath(); ctx.moveTo(posicaoX(0),posicaoY(this.dataProvider[0])); for(var i=1;i<this.dataProvider.length;i++) { ctx.lineTo(posicaoX(i),posicaoY(this.dataProvider[i])); ctx.strokeStyle = this.cor; ctx.lineWidth = this.espessura; ctx.stroke(); } for(var i=0;i<this.dataProvider.length;i++) { ctx.beginPath(); ctx.arc(posicaoX(i), posicaoY(this.dataProvider[i]), this.espessura*1.3, 0, Math.PI * 2, false); ctx.fill(); } } } function pegarValorMaximo() { var max = 0; for(var i = 0; i < grafico.dataProvider.length; i ++) { if(grafico.dataProvider[i] > max) { max = grafico.dataProvider[i]; } } max += 10 - max % 10; return max; } function posicaoY(val) { return docHeight - ((docHeight)/ pegarValorMaximo()) * val; } function posicaoX(val) { return (docWidth / grafico.dataProvider.length) * val; } // usando um provedor de dados para preencher grafico.cor = "#75bc48"; grafico.dataProvider = [21,11,18,29,7,10,90,35,60,20,40,80,44,50,30,90,70,20,10,99,33]; grafico.columnHeight = 20; // seta largura da coluna grafico.init(); // inicializa
canvas { background:#f3f3f3; overflow:scroll !important; transform: translate3d(0,0,0); }
<canvas width="100" height="100" id="grafico_linhas"></canvas>