HTML5 / CSS 2.x/3 / PHP / MySQL ...

Graphes avec plusieurs barres

Graphes à deux barres

Au fil des exemples, vous avez aperçu à plusieurs reprises des graphes à deux barres. Ces graphes ne sont pas plus complexes à générer que des graphes à une barre.

Script d'un graphe à deux barres:

<?php
    $datas  = "[[45,60],[65,30],[40,80],[115,100]]";
    $labels = "['Marc', 'Michel', 'Claude', 'Pierre']";
?>
<canvas id="myCanvas" width="500" height="250">[No canvas support]</canvas>
<script>
    window.onload = function ()
    {
        datas  = <?php echo $datas; ?>;
        labels = <?php echo $labels ?>;
 
        var bar5 = new RGraph.Bar('myCanvas', datas)
            .Set('colors', ['#CC1111', '#11CCCC'])
            .Set('labels', labels)
          //  .Set('strokestyle', 'transparent')
            .Set('ymax', 120)
            .Draw();
    }
</script>
graphe avec deux barres

Tout se joue dans la déclaration des données à afficher. Pour un graphe ordinaire à une barre par valeur, on déclare les valeurs ainsi:

    $datasGraphe = "[45,12,14,4]"; 

Dans notre exemple ci-avant, on déclare les couples de valeurs ainsi:

    $datas  = "[[45,60],[65,30],[40,80],[115,100]]";

Pour les barres de la valeur Michel, on aura les valeurs [65,30].

A quoi correspondent ces valeurs dans la vie réelle? Pour notre exemple, ce peut être les ventes réalisées par des vendeurs. Chaque couleur correspond à une catégorie de produits: alimentaire, autre...

Graphes à deux valeurs empilées

Nous allons utiliser la propriété grouping en lui donnant la valeur stacked.

    .Set('grouping', 'stacked')

Résultat:

graphe avec deux barres empilées

Graphe à trois valeurs

Si vous avez bien suivi, ce ne sera guère plus compliqué de passer à un graphe à trois barres par valeur:

    $datas  = "[[45,60,17],[65,30,45],[40,80,20],[115,100,75]]";

On verra dans une section particulière comment passer de données en base de données à ces valeurs compatibles JavaScript.

Script complet:

<?php
    $datas  = "[[45,60,17],[65,30,45],[40,80,20],[115,100,75]]";
    $labels = "['Marc', 'Michel', 'Claude', 'Pierre']";
?>
<canvas id="myCanvas" width="500" height="250">[No canvas support]</canvas>
<script>
    window.onload = function ()
    {
        datas  = <?php echo $datas; ?>;
        labels = <?php echo $labels ?>;
 
        var bar5 = new RGraph.Bar('myCanvas', datas)
            .Set('colors', ['#CC1111', '#11CCCC','#CC11CC'])
            .Set('labels', labels)
            .Set('ymax', 120)
            .Draw();
    }
</script>
graphe avec trois barres

En utilisant la propriété grouping avec la valeur stacked on peut également empiler ces valeurs:

    .Set('grouping', 'stacked')

Résultat:

graphe avec trois barres empilées

Mais avant d'aborder d'autre type de graphes, voyons maintenant en détail comment inter-agir avec la base de données et plus particulièrement comment récupérer les données et les présenter de manière adaptée à JavaScript

Tous les articles sur ce thème