Présentation
Une
Les graphiques Google acceptent trois types de courbes de tendance: linéaire, polynomiale et exponentielle.
Courbes de tendance linéaires
Une ligne de tendance
Le graphique ci-dessous illustre une courbe de tendance linéaire sur un graphique à nuage de points comparant l'âge des érables à sucre au diamètre de leurs troncs. Vous pouvez pointer sur la ligne de tendance pour voir l'équation calculée par Google Charts: 4,885 fois le diamètre + 0,730.
Pour tracer une ligne de tendance sur un graphique, utilisez l'option trendlines
et spécifiez la série de données à utiliser:
google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Diameter', 'Age'], [8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]]); var options = { title: 'Age of sugar maples vs. trunk diameter, in inches', hAxis: {title: 'Diameter'}, vAxis: {title: 'Age'}, legend: 'none', trendlines: { 0: {} } // Draw a trendline for data series 0. }; var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); chart.draw(data, options); }
Les courbes de tendance linéaires sont le type de courbe de tendance le plus courant. Toutefois, il est parfois préférable d'utiliser une courbe pour décrire des données. Pour cela, nous avons besoin d'un autre type de courbe de tendance.
Courbes de tendance exponentielles
Si vos données s'expliquent mieux par une ligne exponentielle de la forme eax+b, vous pouvez utiliser l'attribut type
pour spécifier une ligne de tendance
Remarque:Contrairement aux courbes de tendance linéaires, il existe plusieurs façons de calculer une courbe de tendance exponentielle. Nous ne proposons qu'une seule méthode pour le moment, mais nous en acceptons d'autres à l'avenir. Il est donc possible que le nom ou le comportement de la ligne de tendance exponentielle actuelle change.
Pour ce graphique, nous utilisons également visibleInLegend: true
pour afficher la courbe exponentielle dans la légende.
google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Generation', 'Descendants'], [0, 1], [1, 33], [2, 269], [3, 2013] ]); var options = { title: 'Descendants by Generation', hAxis: {title: 'Generation', minValue: 0, maxValue: 3}, vAxis: {title: 'Descendants', minValue: 0, maxValue: 2100}, trendlines: { 0: { type: 'exponential', visibleInLegend: true, } } }; var chart = new google.visualization.ScatterChart(document.getElementById('chart_div2')); chart.draw(data, options); }
Modifier la couleur
Par défaut, les lignes de tendance sont de la même couleur que les séries de données, mais elles sont plus claires. Vous pouvez remplacer cela avec l'attribut color
.
Ici, nous représentons le nombre de chiffres de π qui ont été calculés par année au cours d'une période informatiquement fructueuse, et la ligne de tendance exponentielle est colorée en vert.
Voici la spécification des courbes de tendance:
trendlines: { 0: { type: 'exponential', color: 'green', } }
Courbes de tendance polynomiales
Pour générer une ligne de tendance polynomiale, spécifiez le type polynomial
et un degree
. À utiliser avec prudence, car ils peuvent parfois donner des résultats trompeurs. Dans l'exemple ci-dessous, où un ensemble de données à peu près linéaire est tracé avec une ligne de tendance cubique (degré 3) :
Notez que la baisse après le dernier point de données n'est visible que parce que nous avons artificiellement étendu l'axe horizontal à 15. Si la valeur de hAxis.maxValue n'était pas définie sur 15, elle aurait été semblable à ceci:
Mêmes données, même polynôme, fenêtre différente sur les données.
var options = { title: 'Age vs. Weight comparison', legend: 'none', crosshair: { trigger: "both", orientation: "both" }, trendlines: { 0: { type: 'polynomial', degree: 3, visibleInLegend: true, } } };
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load("current", {packages:["corechart"]}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Age', 'Weight'], [ 8, 12], [ 4, 5.5], [ 11, 14], [ 4, 5], [ 3, 3.5], [ 6.5, 7] ]); var options = { title: 'Age vs. Weight comparison', legend: 'none', crosshair: { trigger: 'both', orientation: 'both' }, trendlines: { 0: { type: 'polynomial', degree: 3, visibleInLegend: true, } } }; var chart = new google.visualization.ScatterChart(document.getElementById('polynomial2_div')); chart.draw(data, options); } </script> </head> <body> <div id='polynomial2_div' style='width: 900px; height: 500px;'></div> </body> </html>
Modifier l'opacité et l'épaisseur du trait
Vous pouvez modifier la transparence de la courbe de tendance en définissant opacity
sur une valeur comprise entre 0,0 et 1,0, et la largeur de la ligne en définissant l'option lineWidth
.
trendlines: { 0: { color: 'purple', lineWidth: 10, opacity: 0.2, type: 'exponential' } }
L'option lineWidth
suffit pour la plupart des utilisations, mais si vous aimez l'apparence, vous pouvez utiliser l'option pointSize
pour personnaliser la taille des points sélectionnables dans la ligne de tendance:
Tout comme la lumière est à la fois une onde et une particule, une ligne de tendance est à la fois une ligne et un ensemble de points. Ce que les utilisateurs voient dépend de la manière dont ils interagissent avec elle: il s'agit généralement d'une ligne, mais lorsqu'ils pointent sur la ligne de tendance, un point particulier est mis en surbrillance. Ce point aura un diamètre égal à:
- la courbe de tendance
pointSize
si elle est définie, sinon... pointSize
global s'il est défini, sinon...- 7
Toutefois, si vous définissez l'option globale ou la ligne de tendance pointSize
, tous les points sélectionnables seront affichés, indépendamment de la lineWidth
de la ligne de tendance.
var options = { legend: 'none', hAxis: { ticks: [] }, vAxis: { ticks: [] }, pointShape: 'diamond', trendlines: { 0: { type: 'polynomial', degree: 3, visibleInLegend: true, pointSize: 20, // Set the size of the trendline dots. opacity: 0.1 } } };
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load("current", {packages:["corechart"]}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['X', 'Y'], [0, 4], [1, 2], [2, 4], [3, 6], [4, 4] ]); var options = { legend: 'none', hAxis: { ticks: [] }, vAxis: { ticks: [] }, colors: ['#703583'], pointShape: 'diamond', trendlines: { 0: { type: 'polynomial', degree: 3, visibleInLegend: true, pointSize: 20, // Set the size of the trendline dots. opacity: 0.1 } } }; var chart = new google.visualization.ScatterChart(document.getElementById('chart_pointSize')); chart.draw(data, options); } </script> </head> <body> <div id="chart_pointSize" style="width: 900px; height: 500px;"></div> </body> </html>
Rendre les points visibles
Les courbes de tendance sont composées de plusieurs points sur le graphique. L'option pointsVisible
de la courbe de tendance détermine si ses points sont visibles ou non. L'option par défaut pour toutes les lignes de tendance est true
, mais si vous souhaitez désactiver la visibilité du point pour la première ligne de tendance, définissez trendlines.0.pointsVisible: false
.
Le graphique ci-dessous illustre le contrôle de la visibilité des points par ligne de tendance.
var options = { height: 500, legend: 'none', colors: ['#9575cd', '#33ac71'], pointShape: 'diamond', trendlines: { 0: { type: 'exponential', pointSize: 20, opacity: 0.6, pointsVisible: false }, 1: { type: 'linear', pointSize: 10, pointsVisible: true } } };
<html> <head> <meta charset="utf-8"/> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {packages:['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['X', 'Y', 'Z'], [0, 4, 5], [1, 2, 6], [2, 4, 8], [3, 6, 10], [4, 4, 11], [5, 8, 13], [6, 12, 15], [7, 15, 19], [8, 25, 21], [9, 34, 23], [10, 50, 27] ]); var options = { height: 500, legend: 'none', colors: ['#9575cd', '#33ac71'], pointShape: 'diamond', trendlines: { 0: { type: 'exponential', pointSize: 20, opacity: 0.6, pointsVisible: false }, 1: { type: 'linear', pointSize: 10, pointsVisible: true } } }; var chart = new google.visualization.ScatterChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div"></div> </body> </html>
Modifier le libellé
Par défaut, si vous sélectionnez visibleInLegend
, le libellé révèle l'équation de la courbe de tendance. Vous pouvez utiliser labelInLegend
pour spécifier un autre libellé. Ici, nous affichons une courbe de tendance pour chacune des deux séries, en définissant les étiquettes de la légende sur "Ligne de bug" (pour la série 0) et "Ligne de test" (série 1).
trendlines: { 0: { labelInLegend: 'Bug line', visibleInLegend: true, }, 1: { labelInLegend: 'Test line', visibleInLegend: true, } }
Corrélations
Le coefficient de détermination, appelé R2 en statistiques, identifie le degré de correspondance entre une courbe de tendance et les données. Une corrélation parfaite est égale à 1,0 et une anticorrélation parfaite est de 0,0.
Vous pouvez représenter R2 dans la légende de votre graphique en définissant l'option showR2
sur true
.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Age', 'Weight'], [ 8, 12], [ 4, 5.5], [ 11, 14], [ 4, 5], [ 3, 3.5], [ 6.5, 7] ]); var options = { hAxis: {minValue: 0, maxValue: 15}, vAxis: {minValue: 0, maxValue: 15}, chartArea: {width:'50%'}, trendlines: { 0: { type: 'linear', showR2: true, visibleInLegend: true } } }; var chartLinear = new google.visualization.ScatterChart(document.getElementById('chartLinear')); chartLinear.draw(data, options); options.trendlines[0].type = 'exponential'; options.colors = ['#6F9654']; var chartExponential = new google.visualization.ScatterChart(document.getElementById('chartExponential')); chartExponential.draw(data, options); } </script> </head> <body> <div id="chartLinear" style="height: 350px; width: 800px"></div> <div id="chartExponential" style="height: 350px; width: 800px"></div> </body> </html>