How to create a combined Bar and progress bar chart

[No canvas support] With the ObjectRegistry that is part of RGraphs architecture, combining chart types becomes a lot easier. Instead of just the usual Bar and Line chart combination charts you can combine any of the chart types that RGraph supports on a single canvas tag. By using the obj.coords array, which is where coordinates are usually stored (different chart types may vary), you can create combinations of charts. Because it's common - the Bar/Line combination has a specific class which you can use and read about here.

In the chart shown here, though, no coordinates are used and there's only two Bar charts that are created - one on top of the other. This allows us to get the progress bar effect with the second Bar chart sitting on top of the first. In this case the first Bar chart is used as the background to the bars and the foreground Bar chart is used as the "progress indicators"

The code that creates the chart

This is the code for the two Bar charts the make up the visualisation that's shown above.

<script>
    //
    // Create the first Bar chart - these bars become the backgrounds to the bars.
    // Note that the reference to the chart object is kept in the bar1 variable
    // because it's used in the second chart.
    bar1 = new RGraph.Bar({
        id: 'cvs',
        data: [5,4,8,7,6,3,6],
        options: {
            
            // If you want different colored backgrounds then this is the color
            // to change.
            colors: ['#ddd'],
            
            xaxisLabels: ['Mon','Tue','wed','Thu','Fri','Sat','Sun'],
            title: 'A Vertical Progress Bar chart',
            titleBold: true,
            textSize: 14,
            
            // On the second chart the background grid is disabled so it
            // should be configured here.
            backgroundGridVlines: false,
            backgroundGridBorder: false,

            // Don't want to see the axes
            xaxis: false,
            yaxis: false,

            colorsStroke: '#aaa'
        }
    }).draw();

    //
    // This second chart becomes the green insides of the bars.
    new RGraph.Bar({
        id: 'cvs',
        data: [1,3,2,2,1,1,4],
        options: {
        
            // This green color can be changed if you want
            // your bars to be a different color
            colors: ['green'],
            
            // Turn the background grid and axes off
            backgroundGrid: false,
            xaxis: false,
            yaxis: false,
            
            // Remember the reference to the first chart was
            // saved? Here it's used to set the same maximum
            // scale value so that both charts use the same
            // scale.
            yaxisScaleMax: bar1.scale2.max,

            // Don't show the scale though
            yaxisScale: false
        }
    }).wave();
</script>