J'essaie d'utiliser le graphique en anneau avec plusieurs jeux de données et d'utiliser également la fonctionnalité tooltipTemplate pour personnaliser le texte à l'intérieur des info-bulles, mais rien ne fonctionne. Cela fonctionnait dans la version précédente de Chart js mais cela ne supportait pas plusieurs jeux de données. Quelqu'un peut-il aider? Ci-dessous mon code:
options: {
tooltips: {
tooltipTemplate: "<%if (label){%><%=value%><%} else {%> No data <%}%>",
},
}
Comme potatopeelings l'a mentionné dans les commentaires, vous devez définir un rappel pour l'info-bulle.
Voici un exemple:
options: {
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
var label = data.labels[tooltipItem.index];
return datasetLabel + ': ' + label;
}
}
}
}
démo en direct
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ["Men", "Women", "Unknown"],
datasets: [{
label: 'Sweden',
data: [60, 40, 20],
backgroundColor: ['rgba(158, 216, 202, 0.75)', 'rgba(255, 150, 162, 0.75)', 'rgba(160, 160, 160, 0.75)']
}, {
label: 'Netherlands',
data: [40, 70, 10],
backgroundColor: ['rgba(158, 216, 202, 0.5)', 'rgba(255, 150, 162, 0.5)', 'rgba(160, 160, 160, 0.5)']
}, {
data: [33, 33, 34],
backgroundColor: ['rgba(158, 216, 202, 0.25)', 'rgba(255, 150, 162, 0.25)', 'rgba(160, 160, 160, 0.25)']
}]
},
options: {
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var datasetLabel = data.datasets[tooltipItem.datasetIndex].label || 'Other';
var label = data.labels[tooltipItem.index];
return datasetLabel + ': ' + label;
}
}
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.2/Chart.min.js"></script>
<canvas id="myChart" width="400" height="200"></canvas>
Le tooltipsTemplate Chart.js 1.x est équivalent à options.tooltips.callbacks.title
dans Chart.js 2.x:
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: [
"Men",
"Women",
"Unknown"
],
datasets: [{
label: 'Sweden',
data: [60, 40, 20],
backgroundColor: [
'rgba(158, 216, 202, 0.75)',
'rgba(255, 150, 162, 0.75)',
'rgba(160, 160, 160, 0.75)'
]
}, {
label: 'Netherlands',
data: [40, 70, 10],
backgroundColor: [
'rgba(158, 216, 202, 0.5)',
'rgba(255, 150, 162, 0.5)',
'rgba(160, 160, 160, 0.5)'
]
}, {
data: [33, 33, 34],
backgroundColor: [
'rgba(158, 216, 202, 0.25)',
'rgba(255, 150, 162, 0.25)',
'rgba(160, 160, 160, 0.25)'
]
}]
},
options: {
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
return 'This value ' + tooltipItem.yLabel;
},
title: function(tooltipItem, data) {
return 'The tooltip title ' + tooltipItem[0].xLabel;
}
}
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.2/Chart.min.js"></script>
<canvas id="myChart" width="400" height="200"></canvas>
Vous devez définir options
pour l'info-bulle mode
à label
pour afficher plusieurs info-bulles
options: {
tooltips: {
mode : 'label'
}
}