Débuter avec Chart.js graphiques en courbes et en barres

Dans le premier tutoriel d'introduction à la série Chart.js, vous avez appris à installer et à utiliser Chart.js dans un projet. Vous avez également découvert certaines options de configuration globales pouvant être utilisées pour modifier les polices et les info-bulles de différents graphiques. Dans ce tutoriel, vous allez apprendre à créer des graphiques à courbes et à barres dans Chart.js..

Création de graphiques en courbes

Les graphiques linéaires sont utiles lorsque vous souhaitez afficher les changements de valeur d'une variable donnée par rapport aux changements d'une autre variable. L'autre variable est généralement le temps. Par exemple, des graphiques linéaires peuvent être utilisés pour montrer la vitesse d'un véhicule pendant des intervalles de temps spécifiques.

Chart.js vous permet de créer des graphiques à courbes en définissant la type la clé de ligne. Voici un exemple:

var lineChart = new Chart (speedCanvas, type: 'ligne', data: speedData, options: chartOptions);

Nous allons maintenant fournir les données ainsi que les options de configuration nécessaires pour tracer le graphique en courbes..

var speedData = labels: ["0s", "10s", "20s", "30s", "40s", "50s", "60s"], jeux de données: [label: "Vitesse de la voiture", data: [ 0, 59, 75, 20, 20, 55, 40],]; var chartOptions = légende: display: true, position: 'top', libellés: boxWidth: 80, fontColor: 'black';

Comme nous n’avons fourni aucune couleur pour le graphique à courbes, la couleur par défaut rgba (0,0,0,0,1) sera utilisé. Nous n'avons apporté aucune modification à l'info-bulle ou à la légende. Vous pouvez en savoir plus sur la modification de la taille de la caisse, de l'info-bulle ou de la légende dans la première partie de la série.. 

Dans cette partie, nous nous concentrerons sur différentes options spécifiquement disponibles pour modifier les graphiques linéaires. Toutes les options et données que nous avons fournies ci-dessus créeront le tableau suivant.

La couleur de l’aire sous la courbe est déterminée par le Couleur de fond clé. Tous les graphiques linéaires dessinés à l'aide de cette méthode seront remplis avec la couleur donnée. Vous pouvez définir la valeur du remplir la clé de faux si vous voulez seulement tracer une ligne et ne pas la remplir de couleur.

Une autre chose que vous avez peut-être remarquée est que nous utilisons des points de données discrets pour tracer le graphique. La bibliothèque interpole automatiquement les valeurs de tous les autres points en utilisant des algorithmes intégrés. 

Par défaut, les points sont tracés à l'aide d'une interpolation cubique pondérée personnalisée. Cependant, vous pouvez également définir la valeur de cubicInterpolationMode la clé de monotone pour tracer les points plus précisément lorsque le graphique que vous tracez est défini par l'équation y = f (x). La tension de la courbe de Bézier est déterminée par la lineTension clé. Vous pouvez définir sa valeur sur zéro pour tracer des lignes droites. Veuillez noter que cette clé est ignorée lorsque la valeur de cubicInterpolationMode a déjà été spécifié.

Vous pouvez également définir la valeur de la couleur de la bordure et sa largeur à l’aide des touches couleur de la bordure et largeur de la bordure clés. Si vous souhaitez tracer le graphique en utilisant une ligne pointillée au lieu d'une ligne continue, vous pouvez utiliser le borderDash clé. Il accepte comme valeur un tableau dont les éléments déterminent respectivement la longueur et l'espacement des tirets..

L’aspect des points tracés peut être contrôlé à l’aide de la touche pointBorderColorpointCouleur de fondpointBorderWidthpoint radius, et pointHoverRadius Propriétés. Il y a aussi pointHitRadius clé, qui détermine la distance à laquelle les points tracés commenceront à interagir avec la souris.

var speedData = labels: ["0s", "10s", "20s", "30s", "40s", "50s", "60s"], jeux de données: [label: "Vitesse de la voiture", data: [ 0, 59, 75, 20, 20, 55, 40], lineTension: 0, remplissage: false, borderColor: 'orange', backgroundColor: 'transparent', borderDash: [5, 5], pointBorderColor: 'orange', pointBackgroundColor : 'rgba (255,150,0,0.5)', pointRadius: 5, pointHoverRadius: 10, pointHitRadius: 30, pointBorderWidth: 2, pointStyle: 'rectRounded'];

Ce qui précède speedData objet parcourt les mêmes points de données que le graphique précédent mais avec des valeurs personnalisées définies pour toutes les propriétés.

Vous pouvez également tracer plusieurs lignes sur un même graphique et fournir différentes options pour les dessiner comme suit:

var dataFirst = label: "Voiture A - Vitesse (mph)", données: [0, 59, 75, 20, 20, 55, 40], lineTension: 0.3, // Définir plus d'options; var dataSecond = label: "Voiture B - Vitesse (mi / h)", données: [20, 15, 60, 60, 65, 30, 70], // Définir plus d'options; var speedData = labels: ["0s", "10s", "20s", "30s", "40s", "50s", "60s",], ensembles de données: [dataFirst, dataSecond]; var lineChart = new Chart (speedCanvas, type: 'line', data: speedData);

Création de graphiques à barres

Les graphiques à barres sont utiles lorsque vous souhaitez comparer un seul indicateur pour différentes entités, par exemple le nombre de voitures vendues par différentes sociétés ou le nombre de personnes appartenant à certains groupes d'âge dans une ville. Vous pouvez créer des graphiques à barres dans Chart.js en définissant la type la clé de bar. Par défaut, cela créera des graphiques avec des barres verticales. Si vous souhaitez créer des graphiques avec des barres horizontales, vous devez définir la type à barre horizontale

var barChart = new Chart (densitéCanvas, type: 'bar', données: densitéData, options: chartOptions);

Créons un diagramme à barres qui représente la densité de toutes les planètes de notre système solaire. Les données de densité proviennent de la fiche de renseignements sur les planètes fournie par la NASA.. 

densité de var = étiquette: 'Densité des planètes (kg / m3)', données: [5427, 5243, 5514, 3933, 1326, 687, 1271, 1638]; var barChart = new Chart (densitéCanvas, type: 'bar', données: étiquettes: ["Mercure", "Vénus", "Terre", "Mars", "Jupiter", "Saturne", "Uranus", " Neptune "], jeux de données: [densitéData]);

Les paramètres fournis ci-dessus créeront le graphique suivant:

Tout comme le graphique en courbes, les barres sont également remplies d'une couleur gris clair. Vous pouvez changer la couleur des barres en utilisant le bouton Couleur de fond clé. De même, la couleur et la largeur des bordures de différentes barres peuvent être spécifiées à l’aide des touches couleur de la bordure et largeur de la bordure clés. 

Si vous voulez que la bibliothèque ignore de dessiner la bordure pour un bord particulier, vous pouvez spécifier ce bord comme valeur de la valeur. borderSkipped clé. Vous pouvez définir sa valeur sur Haut, la gauche, bas, ou droite.  Vous pouvez également modifier la couleur de la bordure et de l’arrière-plan de différentes barres lorsqu'elles sont survolées à l’aide des touches hoverBorderColor et hoverBackgroundColor clé. 

Les barres dans l'histogramme ci-dessus ont été automatiquement dimensionnées. Cependant, vous pouvez contrôler la largeur de chaque barre à l’aide des touches barépaisseur et barPourcentage Propriétés. le barépaisseur la touche sert à définir l'épaisseur des barres en pixels, et barPourcentage est utilisé pour définir l'épaisseur en pourcentage de la largeur de la catégorie disponible. 

Vous pouvez également afficher ou masquer un axe particulier à l'aide de sa afficher clé. Définir la valeur de afficher à faux va cacher cet axe particulier. Vous pouvez en savoir plus sur toutes ces options sur la page de documentation.

Rendons le graphique de densité plus intéressant en remplaçant les valeurs par défaut des graphiques à barres à l'aide du code suivant.

var densitéData = label: 'Densité des planètes (kg / m3)', données: [5427, 5243, 5514, 3933, 1326, 687, 1271, 1638], backgroundColor: ['rgba (0, 99, 132, 0.6 ) ',' rgba (30, 99, 132, 0.6) ',' rgba (60, 99, 132, 0.6) ',' rgba (90, 99, 132, 0.6) ',' rgba (120, 99, 132 , 0.6) ',' rgba (150, 99, 132, 0.6) ',' rgba (180, 99, 132, 0.6) ',' rgba (210, 99, 132, 0.6) ',' rgba (240, 99 , 132, 0.6) '], borderColor: [' rgba (0, 99, 132, 1) ',' rgba (30, 99, 132, 1) ',' rgba (60, 99, 132, 1) ', 'rgba (90, 99, 132, 1)', 'rgba (120, 99, 132, 1)', 'rgba (150, 99, 132, 1)', 'rgba (180, 99, 132, 1) ',' rgba (210, 99, 132, 1) ',' rgba (240, 99, 132, 1) '], borderWidth: 2, hoverBorderWidth: 0; var chartOptions = échelles: yAxes: [barPercentage: 0.5], éléments: rectangle: borderSkipped: 'left',; var barChart = new Chart (densitéCanvas, type: 'barre horizontale', données: étiquettes: ["Mercure", "Vénus", "Terre", "Mars", "Jupiter", "Saturne", "Uranus", " Neptune "], jeux de données: [densityData],, options: chartOptions);

le DensitéDonnées objet est utilisé pour définir la bordure et la couleur d'arrière-plan des barres. Il y a deux choses à noter dans le code ci-dessus. Premièrement, les valeurs de la barPourcentage et borderSkipped propriétés ont été définies à l'intérieur du chartOptions objet au lieu de dataDensity objet. 

Deuxièmement, la carte type a été mis à barre horizontale cette fois. Cela signifie également que vous devrez changer la valeur de barépaisseur et barPourcentage pour l'axe des ordonnées au lieu de l'axe des abscisses pour qu'ils aient un effet sur les barres.

Les paramètres fournis ci-dessus créeront l'histogramme suivant.

Vous pouvez également tracer plusieurs jeux de données sur le même graphique en affectant une identifiant de l'axe correspondant à un ensemble de données particulier. le xAxisID la touche est utilisée pour assigner le identifiant de n'importe quel axe x à votre jeu de données. De même, le yAxisID la touche est utilisée pour assigner le identifiant de n'importe quel axe y à votre jeu de données. Les deux axes ont également un identifiant clé que vous pouvez utiliser pour leur attribuer des identifiants uniques.

Si le dernier paragraphe était un peu déroutant, l'exemple suivant aidera à clarifier les choses.

var densitéData = étiquette: 'Densité de la planète (kg / m3)', données: [5427, 5243, 5514, 3933, 1326, 687, 1271, 1638], backgroundColor: 'rgba (0, 99, 132, 0.6) ', borderColor:' rgba (0, 99, 132, 1) ', yAxisID: "densité d'axe des ordonnées"; var gravityData = label: 'Gravité de la planète (m / s2)', données: [3.7, 8.9, 9.8, 3.7, 23.1, 9.0, 8.7, 11.0], backgroundColor: 'rgba (99, 132, 0, 0.6) ', borderColor:' rgba (99, 132, 0, 1) ', yAxisID: "y-axis-gravity"; var planetData = étiquettes: ["Mercure", "Vénus", "Terre", "Mars", "Jupiter", "Saturne", "Uranus", "Neptune"], ensembles de données: [densitéData, gravityData]; var chartOptions = scale: xAxes: [barPercentage: 1, categoryPercentage: 0.6], yAxes: [id: "densité d'axe des y", id: "gravité d'axe des y" ; var barChart = new Chart (densitéCanvas, type: 'bar', données: planetData, options: chartOptions);

Ici, nous avons créé deux axes y avec des identifiants uniques. Ils ont été attribués à des jeux de données individuels à l’aide de la yAxisID clé. le barPourcentage et catégoriePourcentage Des clés ont été utilisées ici pour regrouper les barres de planètes individuelles. Réglage catégoriePourcentage à une valeur inférieure augmente l'espace entre les barres de différentes planètes. De même, la mise barPourcentage à une valeur plus élevée réduit l'espace entre les barres de la même planète.

Dernières pensées

Dans ce didacticiel, nous avons couvert tous les aspects des graphiques à courbes et à barres dans Chart.js. Vous devriez maintenant pouvoir créer des graphiques de base, modifier leur apparence et tracer plusieurs jeux de données sur le même graphique sans aucun problème. Dans la prochaine partie de la série, vous découvrirez les cartes de radar et de zone polaire dans Chart.js.

J'espère que vous avez aimé ce tutoriel. Si vous avez des questions, s'il vous plaît laissez-moi savoir dans les commentaires.