Edit in JSFiddle

var graphinator;
(function (graphinator) {
    graphinator.initilize = function () {
        if ($ == null) {
            var msg = 'JQuery is not defined. Please reference JQuery for graphinator to function properly';
            alert(msg);
            throw msg;
        }
    };

    graphinator.buildDummyTable = function (rows, elementId) {
        var fakeDataArray = [];
        for (var i = 0; i <= rows; i++) {
            var fakeData = {
                String: Guid.newGuid(),
                Number: i,
                RandomNumber: Math.floor((Math.random() * 1000) + 1)
            };
            fakeDataArray.push(fakeData);
        }
        return new HtmlTable(elementId, fakeDataArray).toHtmlString();
    };

    graphinator.graphinate = function (tableId, imgSrc) {
        var colCount = $('table#' + tableId + ' tr:first').children().length;

        for (var i = 0; i < colCount; i++) {
            var max = 0;
            var min = 0;

            $('#' + tableId + ' tr').each(function (index, row) {
                var val = $(row).children()[i].innerHTML;
                var cleanVal = cleanValue(val);
                if (isNumber(cleanVal) === true) {
                    var valNum = parseInt(cleanVal);
                    if (isNaN(valNum) === false) {
                        if (valNum > max)
                            max = valNum;
                        if (valNum < min)
                            min = valNum;
                    }
                }
            });

            $('#' + tableId + ' tr').each(function (index, row) {
                var val = $(row).children()[i].innerHTML;
                var cleanVal = cleanValue(val);
                if (isNumber(cleanVal) === true) {
                    var valNum = parseInt(cleanVal);
                    if (isNaN(valNum) === false) {
                        var spread = max - min;
                        var relative = valNum - min;
                        if (spread !== 0) {
                            var working = (relative / spread) * 100;
                            var hundredBasedValue = parseInt(working.toFixed(2));
                            $(row).children()[i].innerHTML = val + builBarElement(hundredBasedValue, imgSrc);
                        }
                    }
                }
            });
        }
      
        var g = $('.graphinator');
        g.css('width', '0%');
        var width = 0;
        var intervalFunc = function () {
            g.css('width', (width + '%'));
            width++;
            if (width === 100) {
                window.clearInterval(intr);
            }
        };
        var intr = setInterval(intervalFunc, 5);
    };

    var isNumber = function (o) {
        return !isNaN(o - 0) && o !== null && o.replace(/^\s\s*/, '') !== "" && o !== false;
    };

    var cleanValue = function (input) {
        var result = input.replace('%', '').replace('$', '').replace(',', '');
        return result;
    };

    var builBarElement = function (percent, imgSrc) {
        var result = '<br/><div class="graphinator" style="width:0%">';
        result += '<img src="' + imgSrc + '" style="width:' + percent + '%;height:10px;" ></div>';
        result += '</div>';
        return result;
    };
})(graphinator || (graphinator = {}));

var HtmlTable = (function () {
    function HtmlTable(id, rows) {
        this.id = '';
        this.rows = [];
        this.id = id;
        this.rows = rows;
    }
    HtmlTable.prototype.toHtmlString = function () {
        var result = '';
        result += '<table id=' + this.id + ' border="1">';

        var isHeaderRow = true;

        $.each(this.rows, function (index, item) {
            result += '<tr>';

            if (isHeaderRow) {
                $.each(item, function (indx, itm) {
                    result += '<th>';
                    result += indx;
                    result += '</th>';
                });
                isHeaderRow = false;
            } else {
                $.each(item, function (indx, itm) {
                    result += '<td>';
                    result += itm;
                    result += '</td>';
                });
            }
            result += '</tr>';
        });

        result += '</table>';
        return result;
    };
    return HtmlTable;
})();

var Guid;
(function (Guid) {
    var s4 = function () {
        return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
    };
    var guid = function () {
        return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
    };
    Guid.newGuid = function () {
        return guid();
    };
})(Guid || (Guid = {}));
 <h1>Graphinator Proof of Concept</h1>
    <button id="btnBuildTestTable">Build Test Table</button>
    <button id="btnGraphinate">Graphinate This Table</button>
    <div id="content">
    </div>
<script>
    $(function () {
        graphinator.initilize();
        
        $('#btnBuildTestTable').click(function () {
            $('#content').html(graphinator.buildDummyTable(10, 'myTestTable'));
        });
        
        $('#btnGraphinate').click(function () {
            graphinator.graphinate('myTestTable',"http://dev6.blob.core.windows.net/dev6pub/conditionalBack.jpg");
        });
    });
</script>