Horizontal Bar Graphs

Home

JavaScript can be used to dynamically generate a simple bar graph with user supplied data. This is due to the simplicity of bar graphs in general, which consists simply of images of varying lengths. We use JavaScript to dynamically write out each image, each with its length calculated using the data entered.

All we need is a simple 1x15 image to start things off:

<IMG src="graph.gif" width="1" height="15">

If we want to stretch this image to 50x15, we do so by generating the image using JavaScript:

<script>
document.write('<img src="poll.gif" width="50" height="15">')
</script>

And with this forms the basis of a dynamic bar graph! Here's a simple script that demonstrates a working example of graph creation using JavaScript: 

<table border="0" cellpadding="0">
<script>
var graphtext=new Array("Jill", "Bob", "Tony") //Graph items
var graphvalue=new Array("60", "45", "95") //Graph values (in percentage, so 70=70%)
var barlength=200
for (i=0;i<graphtext.length;i++)
document.write
('<tr><td>'+graphtext[i]+'&nbsp;</td><td><img src="graph.gif" width="'+graphvalue[i]/100*barlength+'" height="15"></td></tr>')</script>
</table>

The secret here is the code:

width="'+graphvalue[i]/100*barlength+'"

This makes the width of the graph dynamic and based on the data supplied by the user. Basically each width is derived by dividing the input value by 100 to get its percentage equivalent, then multiplied by the baseline bar image length.

There you have it! Dynamic graphs made possible using JavaScript. You may want to take a look at a script called JavaScript Graph-It from JavaScript Kit, which is a user friendly and more sophisticated JS graphing script, where the general idea of this tutorial came from.