Présentation
Un diagramme de Gantt est un type de graphique qui illustre la répartition d'un projet en tâches composées. Les diagrammes de Gantt Google illustrent le début, la fin et la durée des tâches au sein d'un projet, ainsi que les dépendances qu'une tâche peut avoir. Les diagrammes de Gantt Google sont affichés dans le navigateur à l'aide du format SVG. Comme tous les graphiques Google, les diagrammes de Gantt affichent des info-bulles lorsque l'utilisateur pointe sur les données.
Remarque:Les diagrammes de Gantt ne fonctionnent pas dans les anciennes versions d'Internet Explorer. (Internet Explorer 8 et ses versions antérieures ne sont pas compatibles avec le format SVG, qui est nécessaire aux diagrammes de Gantt.)
Exemple simple
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['gantt']}); google.charts.setOnLoadCallback(drawChart); function daysToMilliseconds(days) { return days * 24 * 60 * 60 * 1000; } function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Task ID'); data.addColumn('string', 'Task Name'); data.addColumn('date', 'Start Date'); data.addColumn('date', 'End Date'); data.addColumn('number', 'Duration'); data.addColumn('number', 'Percent Complete'); data.addColumn('string', 'Dependencies'); data.addRows([ ['Research', 'Find sources', new Date(2015, 0, 1), new Date(2015, 0, 5), null, 100, null], ['Write', 'Write paper', null, new Date(2015, 0, 9), daysToMilliseconds(3), 25, 'Research,Outline'], ['Cite', 'Create bibliography', null, new Date(2015, 0, 7), daysToMilliseconds(1), 20, 'Research'], ['Complete', 'Hand in paper', null, new Date(2015, 0, 10), daysToMilliseconds(1), 0, 'Cite,Write'], ['Outline', 'Outline paper', null, new Date(2015, 0, 6), daysToMilliseconds(1), 100, 'Research'] ]); var options = { height: 275 }; var chart = new google.visualization.Gantt(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div"></div> </body> </html>
Aucune dépendance
Pour créer un diagramme de Gantt qui ne comporte aucune dépendance, assurez-vous que la dernière valeur de chaque ligne de votre table de données est définie sur null
.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['gantt']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Task ID'); data.addColumn('string', 'Task Name'); data.addColumn('string', 'Resource'); data.addColumn('date', 'Start Date'); data.addColumn('date', 'End Date'); data.addColumn('number', 'Duration'); data.addColumn('number', 'Percent Complete'); data.addColumn('string', 'Dependencies'); data.addRows([ ['2014Spring', 'Spring 2014', 'spring', new Date(2014, 2, 22), new Date(2014, 5, 20), null, 100, null], ['2014Summer', 'Summer 2014', 'summer', new Date(2014, 5, 21), new Date(2014, 8, 20), null, 100, null], ['2014Autumn', 'Autumn 2014', 'autumn', new Date(2014, 8, 21), new Date(2014, 11, 20), null, 100, null], ['2014Winter', 'Winter 2014', 'winter', new Date(2014, 11, 21), new Date(2015, 2, 21), null, 100, null], ['2015Spring', 'Spring 2015', 'spring', new Date(2015, 2, 22), new Date(2015, 5, 20), null, 50, null], ['2015Summer', 'Summer 2015', 'summer', new Date(2015, 5, 21), new Date(2015, 8, 20), null, 0, null], ['2015Autumn', 'Autumn 2015', 'autumn', new Date(2015, 8, 21), new Date(2015, 11, 20), null, 0, null], ['2015Winter', 'Winter 2015', 'winter', new Date(2015, 11, 21), new Date(2016, 2, 21), null, 0, null], ['Football', 'Football Season', 'sports', new Date(2014, 8, 4), new Date(2015, 1, 1), null, 100, null], ['Baseball', 'Baseball Season', 'sports', new Date(2015, 2, 31), new Date(2015, 9, 20), null, 14, null], ['Basketball', 'Basketball Season', 'sports', new Date(2014, 9, 28), new Date(2015, 5, 20), null, 86, null], ['Hockey', 'Hockey Season', 'sports', new Date(2014, 9, 8), new Date(2015, 5, 21), null, 89, null] ]); var options = { height: 400, gantt: { trackHeight: 30 } }; var chart = new google.visualization.Gantt(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div"></div> </body> </html>
Regrouper des ressources
Les tâches de nature similaire peuvent être regroupées à l'aide de ressources. Ajoutez une colonne de type string
à vos données (après les colonnes Task ID
et Task Name
), et assurez-vous que toutes les tâches à regrouper dans une ressource ont le même ID de ressource. Les ressources seront regroupées par couleur.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['gantt']}); google.charts.setOnLoadCallback(drawChart); function daysToMilliseconds(days) { return days * 24 * 60 * 60 * 1000; } function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Task ID'); data.addColumn('string', 'Task Name'); data.addColumn('string', 'Resource'); data.addColumn('date', 'Start Date'); data.addColumn('date', 'End Date'); data.addColumn('number', 'Duration'); data.addColumn('number', 'Percent Complete'); data.addColumn('string', 'Dependencies'); data.addRows([ ['Research', 'Find sources', null, new Date(2015, 0, 1), new Date(2015, 0, 5), null, 100, null], ['Write', 'Write paper', 'write', null, new Date(2015, 0, 9), daysToMilliseconds(3), 25, 'Research,Outline'], ['Cite', 'Create bibliography', 'write', null, new Date(2015, 0, 7), daysToMilliseconds(1), 20, 'Research'], ['Complete', 'Hand in paper', 'complete', null, new Date(2015, 0, 10), daysToMilliseconds(1), 0, 'Cite,Write'], ['Outline', 'Outline paper', 'write', null, new Date(2015, 0, 6), daysToMilliseconds(1), 100, 'Research'] ]); var options = { height: 275 }; var chart = new google.visualization.Gantt(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div"></div> </body> </html>
Début/Fin/Durée du calcul
Les diagrammes de Gantt acceptent trois valeurs relatives à la durée de la tâche: une date de début, une date de fin et une durée (en millisecondes). Si, par exemple, il n'y a pas de date de début, le graphique peut calculer l'heure manquante en fonction de la date de fin et de la durée. Il en va de même pour le calcul de la date de fin. Si une date de début et une date de fin sont toutes les deux indiquées, la durée peut être calculée entre les deux.
Consultez le tableau ci-dessous pour découvrir comment Gantt gère la présence de début, de fin et de durée dans différentes circonstances.
Démarrer | Fin | Durée | Résultat |
---|---|---|---|
Présenter | Présenter | Présenter | Vérifiez que la durée correspond aux heures de début et de fin. Génère une erreur en cas d'incohérence. |
Présenter | Présenter | Vide | Calcule la durée à partir des heures de début et de fin. |
Présenter | Vide | Présenter | Calcule l'heure de fin. |
Présenter | Vide | Vide | La fonction renvoie une erreur indiquant qu'il est impossible de calculer la durée ou l'heure de fin. |
Vide | Présenter | Présenter | Calcule l'heure de début. |
Vide | Vide | Présenter |
Calcule l'heure de début en fonction des dépendances. Utilisé conjointement avec defaultStartDate , ce champ permet de tracer le graphique uniquement en fonction de durées.
|
Vide | Présenter | Vide | Génère une erreur indiquant que le calcul de l'heure de début ou de la durée est impossible. |
Vide | Vide | Vide | Génère une erreur indiquant l'impossibilité de calculer l'heure de début, l'heure de fin ou la durée. |
En gardant à l'esprit ce qui précède, vous pouvez créer un graphique illustrant un trajet domicile-travail type en utilisant uniquement la durée de chaque tâche.
<html> <head> <script src="https://www.gstatic.com/charts/loader.js"></script> <script> google.charts.load("current", { packages: ["gantt"] }); google.charts.setOnLoadCallback(drawChart); function toMilliseconds(minutes) { return minutes * 60 * 1000; } function drawChart() { var otherData = new google.visualization.DataTable(); otherData.addColumn("string", "Task ID"); otherData.addColumn("string", "Task Name"); otherData.addColumn("string", "Resource"); otherData.addColumn("date", "Start"); otherData.addColumn("date", "End"); otherData.addColumn("number", "Duration"); otherData.addColumn("number", "Percent Complete"); otherData.addColumn("string", "Dependencies"); otherData.addRows([ [ "toTrain", "Walk to train stop", "walk", null, null, toMilliseconds(5), 100, null, ], [ "music", "Listen to music", "music", null, null, toMilliseconds(70), 100, null, ], [ "wait", "Wait for train", "wait", null, null, toMilliseconds(10), 100, "toTrain", ], [ "train", "Train ride", "train", null, null, toMilliseconds(45), 75, "wait", ], [ "toWork", "Walk to work", "walk", null, null, toMilliseconds(10), 0, "train", ], [ "work", "Sit down at desk", null, null, null, toMilliseconds(2), 0, "toWork", ], ]); var options = { height: 275, gantt: { defaultStartDate: new Date(2015, 3, 28), }, }; var chart = new google.visualization.Gantt( document.getElementById("chart_div") ); chart.draw(otherData, options); } </script> </head> <body> <div id="chart_div"></div> </body> </html>
Chemin critique
Dans un diagramme de Gantt, le chemin critique est le ou les chemins qui affectent directement la date de fin. Par défaut, le chemin critique dans les diagrammes de Gantt est rouge. Vous pouvez le personnaliser à l'aide des options criticalPathStyle
. Vous pouvez également désactiver le chemin critique en définissant criticalPathEnabled
sur false
.
var options = { height: 275, gantt: { criticalPathEnabled: true, criticalPathStyle: { stroke: '#e64a19', strokeWidth: 5 } } };
Appliquer un style aux flèches
Vous pouvez styliser les flèches de dépendance entre les tâches à l'aide des options gantt.arrow
:
var options = { height: 275, gantt: { criticalPathEnabled: false, // Critical path arrows will be the same as other arrows. arrow: { angle: 100, width: 5, color: 'green', radius: 0 } } };
Appliquer un style aux pistes
Le style en grille est géré par une combinaison de innerGridHorizLine
, innerGridTrack
et innerGridDarkTrack
. Si vous définissez uniquement innerGridTrack
, le graphique calculera une couleur plus sombre pour innerGridDarkTrack
, mais si vous ne définissez que innerGridDarkTrack
, innerGridTrack
utilisera sa couleur par défaut et ne calculera pas une couleur plus claire.
var options = { height: 275, gantt: { criticalPathEnabled: false, innerGridHorizLine: { stroke: '#ffe0b2', strokeWidth: 2 }, innerGridTrack: {fill: '#fff3e0'}, innerGridDarkTrack: {fill: '#ffcc80'} } };
Chargement...
Le nom du package google.charts.load
est "gantt"
.
google.charts.load("current", {packages: ["gantt"]});
Le nom de classe de la visualisation est google.visualization.Gantt
.
var chart = new google.visualization.Gantt(container);
Format des données
Lignes:chaque ligne du tableau représente une tâche.
Columns:
Colonne 0 | Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 | Colonne 6 | Colonne 7 | |
---|---|---|---|---|---|---|---|---|
Objectif : | ID de tâche | Nom de la tâche | ID de ressource (facultatif) | Démarrer | Terminer | Durée (en millisecondes) | Pourcentage terminé | Dépendances |
Type de données : | chaîne | chaîne | chaîne | date | date | Nombre | Nombre | chaîne |
Rôle : | domaine | Données | Données | Données | Données | Données | Données | Données |
Options de configuration
Nom | Type | Par défaut | Description |
---|---|---|---|
backgroundColor.fill | chaîne | 'blanc' | Couleur de remplissage du graphique, sous forme de chaîne de couleur HTML. |
gantt.arrow | objet | nul |
Pour les diagrammes de Gantt, gantt.arrow contrôle les différentes propriétés des flèches reliant les tâches.
|
gantt.arrow.angle | Nombre | 45 | Angle de la pointe de la flèche. |
gantt.arrow.color | chaîne | "#000" | Couleur des flèches. |
gantt.arrow.length | Nombre | 8 | Longueur de la pointe de la flèche. |
gantt.arrow.radius | Nombre | 15 | Rayon de définition de la courbe de la flèche entre deux tâches. |
gantt.arrow.spaceAfter | Nombre | 4 | La quantité d'espace blanc entre l'extrémité d'une flèche et la tâche vers laquelle elle pointe. |
gantt.arrow.width | Nombre | 1,4 | Largeur des flèches. |
gantt.barCornerRadius | Nombre | 2 | Rayon de définition de la courbe des angles d'une barre. |
gantt.barHeight | Nombre | nul | Hauteur des barres pour les tâches. |
gantt.criticalPathEnabled | boolean | true |
Si la valeur est true , le style des flèches du tracé critique sera différent.
|
gantt.criticalPathStyle | objet | nul | Objet contenant le style des flèches représentant un chemin critique. |
gantt.criticalPathStyle.stroke | chaîne | nul | Couleur des flèches du chemin critique |
gantt.criticalPathStyle.strokeWidth | Nombre | 1,4 | Épaisseur des flèches de chemin critique. |
gantt.defaultStartDate | date/numéro | nul |
Si la date de début ne peut pas être calculée à partir des valeurs de la table de données, elle est définie sur cette valeur. Accepte une valeur date (new Date(YYYY, M, D) ) ou un nombre, qui correspond au nombre de millisecondes à utiliser.
|
gantt.innerGridHorizLine | objet | nul | Définit le style des lignes horizontales intérieures de la grille. |
gantt.innerGridHorizLine.stroke | chaîne | nul | Couleur des lignes horizontales de la grille intérieure. |
gantt.innerGridHorizLine.strokeWidth | Nombre | 1 | Largeur des lignes horizontales intérieures de la grille. |
gantt.innerGridTrack.fill | chaîne | nul |
Couleur de remplissage de la piste sous la grille intérieure. Si aucune valeur innerGridDarkTrack.fill n'est spécifiée, elle sera appliquée à chaque piste de la grille.
|
gantt.innerGridDarkTrack.fill | chaîne | nul | Couleur de remplissage de la piste alternative sombre de la grille interne. |
gantt.labelMaxWidth | Nombre | 300 | Espace maximal autorisé pour chaque étiquette de tâche. |
gantt.labelStyle | objet | nul |
Objet contenant les styles des libellés de tâches. labelStyle: { fontName: Roboto2, fontSize: 14, color: '#757575' }, |
gantt.percentEnabled | boolean | true | Occupe la barre des tâches en fonction du pourcentage d'achèvement de la tâche. |
gantt.percentStyle.fill | chaîne | nul | La couleur de la partie du pourcentage de réalisation d'une barre des tâches. |
gantt.shadowEnabled | boolean | true |
Si la valeur est true , une ombre s'affiche sous chaque barre des tâches comportant des dépendances.
|
gantt.shadowColor | chaîne | "#000" | Définit la couleur des ombres sous toute barre des tâches ayant des dépendances. |
gantt.shadowOffset | Nombre | 1 | Définit le décalage, en pixels, des ombres sous toute barre des tâches ayant des dépendances. |
gantt.sortTasks | boolean | true | Spécifie que les tâches doivent être triées de façon topologique, si la valeur est "true". Sinon, utilisez le même ordre que les lignes correspondantes de la table de données. |
gantt.trackHeight | Nombre | nul | Hauteur des pistes. |
largeur | Nombre | La largeur de l'élément conteneur | Largeur du graphique, en pixels. |
taille | Nombre | hauteur de l'élément conteneur | hauteur du graphique, en pixels. |
Méthodes
Method | Description |
---|---|
draw(data, options) |
Permet de dessiner le graphique. Le graphique n'accepte d'autres appels de méthode qu'après le déclenchement de l'événement Return Type (Type renvoyé) : aucun
|
getSelection() |
Renvoie un tableau des entités de graphique sélectionnées.
Les entités sélectionnables sont les barres, les entrées de légende et les catégories.
Pour ce graphique, vous ne pouvez sélectionner qu'une seule entité à la fois.
Type renvoyé:tableau d'éléments de sélection
|
setSelection() |
Sélectionne les entités de graphique spécifiées. Annule toute sélection précédente.
Les entités sélectionnables sont les barres, les entrées de légende et les catégories.
Pour ce graphique, vous ne pouvez sélectionner qu'une seule entité à la fois.
Return Type (Type renvoyé) : aucun
|
clearChart() |
Efface le graphique et libère toutes les ressources allouées. Return Type (Type renvoyé) : aucun
|
Événements
Événement | Description |
---|---|
click |
Déclenché lorsque l'utilisateur clique dans le graphique. Permet de déterminer quand un utilisateur clique sur le titre, les éléments de données, les entrées de légende, les axes, le quadrillage ou les libellés. Propriétés:targetID
|
error |
Déclenché lorsqu'une erreur se produit lors de la tentative d'affichage du graphique. Propriétés:id, message
|
ready |
Le graphique est prêt pour les appels de méthode externes. Si vous souhaitez interagir avec le graphique et appeler des méthodes après l'avoir dessiné, vous devez configurer un écouteur pour cet événement avant d'appeler la méthode Propriétés:aucune
|
select |
Déclenché lorsque l'utilisateur clique sur une entité visuelle. Pour savoir ce qui a été sélectionné, appelez Propriétés:aucune
|
Règles concernant les données
L'ensemble du code et des données sont traités et affichés dans le navigateur. Aucune donnée n'est envoyée à aucun serveur.