A segmented SVG Bar chart

This goes in the documents header:
<script src="RGraph.svg.common.core.js"></script>
<script src="RGraph.svg.bar.js"></script>
Put this where you want the chart to show up:
<div style="position: relative; padding: 15px; display: inline-block; width: 750px; height: 300px">
    <div style="width: 750px; height: 300px; top: 0; left: 0; position: absolute" id="chart-container1"></div>
    <div style="width: 750px; height: 300px; top: 0; left: 0; position: absolute" id="chart-container2"></div>
</div>
This is the code that generates the chart:
<script>
    var bar1 = new RGraph.SVG.Bar({
        id: 'chart-container1',
        data: [5,4,1,3,5,2,1],
        options: {
            gutterLeft: 75,
            yaxis: false,
            xaxis: false,
            yaxisScale: false,
            backgroundGrid: false,
            hmargin: 5
        }
    }).draw();
    
    
    for (var i=1; i<=5; ++i) {
        
        var y = bar1.getYCoord(i);

        RGraph.SVG.create({
            svg: bar1.svg,
            type: 'path',
            attr: {
                d: 'M0 ' + y + ' L750 ' + y,
                stroke: 'white',
                'stroke-width': 8,
                'shape-rendering': "crispEdges"
            }
        });

    }


    var bar2 = new RGraph.SVG.Bar({
        id: 'chart-container2',
        data: [0,0,0,0,0,0,0],
        options: {
            gutterLeft: 75,
            yaxisMax: 5,
            yaxisLabelsOffsety: 25,
            yaxisFormatter: function (obj, num)
            {
                if (!num) {
                    return '';
                }

                return 'Level ' + num;
            },
            hmargin: 20,
            xaxisLabels: ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'],
            title: 'A segmented Bar chart',
        }
    }).draw();
    
    // Need to change the container positions to absolute
    bar1.container.style.position = 'absolute';
    bar2.container.style.position = 'absolute';
</script>

« Back