Schrek.fr

Attention cette article date depuis plus d'un an (583 jours).
Table des matières

ChartJS est une bibliothèque JavaScript open source gratuite pour la visualisation de données (Wikipédia)

Le shortcode

J’ai trouvé le code ici.

Il y a un problème sur le code (voir ici)

src=“https://cdn.jsdelivr.net/npm/chart.js"

A placer dans le dossier themes/MONTHEME/layouts/shortcodes/ et à nommer chart.html

{{ $w := default "100" (.Get 0) }}
{{ $h := default "300" (.Get 1) }}
{{ $r := ( .Inner | chomp) }}
{{ $seed := "foo" }}
{{ $id := delimit (shuffle (split (md5 $seed) "" )) "" }}

<div style="width: {{ $w }}%;height: {{ $h }}px;margin: 0 auto">
    <canvas id="{{ $id }}"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script type="text/javascript">
    var ctx = document.getElementById('{{ $id }}').getContext('2d');
    var options = {{ $r | safeJS }};
    new Chart(ctx, options);
</script>

Exemple

{{< chart 90 200 >}}
{
    type: 'bar',
    data: {
        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        datasets: [{
            label: 'Bar Chart',
            data: [12, 19, 18, 16, 13, 14],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        maintainAspectRatio: false,
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
}
{{< /chart >}}

Explications

On va prendre un exemple sur le site ChartJs.

Squelette de base

{{< chart >}}
{
  type: 'radar',
  data: {},
  options: {}

}
{{< /chart >}}

Les données

{{< chart >}}
{
  type: 'radar',
  data: {
    labels: ['Anglais','Français','Mathématique','Sport'],
     datasets: [{
    label: 'Note éléve Ducobu',
    data: [12, 10, 14, 18],
    fill: true,
    backgroundColor: 'rgba(255, 99, 132, 0.2)',
    borderColor: 'rgb(255, 99, 132)',
 }]
},
  options: {},
}

{{< /chart >}}

On ajoute un élève

{{< chart >}}
{
  type: 'radar',
  data: {
    labels: ['Anglais','Français','Mathématique','Sport'],
     datasets: [{
    label: 'Note élève Ducobu',
    data: [12, 10, 14, 18],
    fill: true,
    backgroundColor: 'rgba(255, 99, 132, 0.2)',
    borderColor: 'rgb(255, 99, 132)',
 }]
},
  options: {},
}

{{< /chart >}}

Conclusion

Il faut bien organiser les données dans le fichier, au début c est un peu galére avec toutes les ,[(,)] …

Mais le resultat est sympa.

ChartJS generator

Quelques liens pour generer des données

https://new-ch.art/v1/

https://quickchart.io/chart-maker/

Liens

https://github.com/shen-yu/hugo-chart

https://www.chartjs.org/

https://ordinarycoders.com/blog/article/11-chart-js-examples


Métadonnées

Posté le: 07.06.2023
Nombre de mots: 402
Temps de lecture: 2 minutes