JSFiddle - React, Tailwind, and code Playground
by Abhishek Kumar
HTML
<canvas id="testCanvas"></canvas>
JavaScript
function drawGraph( dataArr ){
var canvas = document.getElementById( "testCanvas" );
var context = canvas.getContext( "2d" );
var GRAPH_TOP = 0;
var GRAPH_BOTTOM = 20;
var GRAPH_LEFT = 0;
var GRAPH_RIGHT = 50;
var GRAPH_HEIGHT = 20;
var GRAPH_WIDTH = 50;
var arrayLen = dataArr.length;
var largest = 0;
for( var i = 0; i < arrayLen; i++ ){
if( dataArr[ i ] > largest ){
largest = dataArr[ i ];
}
}
context.clearRect( 0, 0, 500, 400 );
// set font for fillText()
context.font = "8px Calibri";
// draw X and Y axis
context.beginPath();
context.moveTo( GRAPH_LEFT, GRAPH_BOTTOM );
context.lineTo( GRAPH_RIGHT, GRAPH_BOTTOM );
context.lineTo( GRAPH_RIGHT, GRAPH_TOP );
context.stroke();
// draw reference line
context.beginPath();
context.strokeStyle = "#BBB";
context.moveTo( GRAPH_LEFT, GRAPH_TOP );
context.lineTo( GRAPH_RIGHT, GRAPH_TOP );
// draw reference value for hours
context.fillText( largest, GRAPH_RIGHT + 15, GRAPH_TOP);
context.stroke();
// draw reference line
context.beginPath();
context.moveTo( GRAPH_LEFT, ( GRAPH_HEIGHT ) / 4 * 3 + GRAPH_TOP );
context.lineTo( GRAPH_RIGHT, ( GRAPH_HEIGHT ) / 4 * 3 + GRAPH_TOP );
// draw reference value for hours
context.fillText( largest / 4, GRAPH_RIGHT + 15, ( GRAPH_HEIGHT ) / 4 * 3 + GRAPH_TOP);
context.stroke();
// draw reference line
context.beginPath();
context.moveTo( GRAPH_LEFT, ( GRAPH_HEIGHT ) / 2 + GRAPH_TOP );
context.lineTo( GRAPH_RIGHT, ( GRAPH_HEIGHT ) / 2 + GRAPH_TOP );
// draw reference value for hours
context.fillText( largest / 2, GRAPH_RIGHT + 15, ( GRAPH_HEIGHT ) / 2 + GRAPH_TOP);
context.stroke();
// draw reference line
context.beginPath();
context.moveTo(...