Comment ajouter l'étiquette dans le graphique.js pour un camembert
j'affiche un diagramme à secteurs. Mais comment afficher les étiquettes dans les diagrammes à secteurs.
ci-dessous est la carte.code JS pour diagramme circulaire.
this.Pie = function(data, options) {
chart.Pie.defaults = {
segmentShowStroke: true,
segmentStrokeColor: "#fff",
segmentStrokeWidth: 2,
animation: true,
animationSteps: 100,
animationEasing: "easeOutBounce",
animateRotate: true,
animateScale: false,
onAnimationComplete: null
};
var config = (options) ? mergeChartConfig(chart.Pie.defaults, options) : chart.Pie.defaults;
return new Pie(data, config, context);
};
et ci-dessous est le code du fichier html pour l'affichage du diagramme à secteurs
code:
var data = [{
value: 20,
color: "#637b85"
}, {
value: 30,
color: "#2c9c69"
}, {
value: 40,
color: "#dbba34"
}, {
value: 10,
color: "#c62f29"
}];
var canvas = document.getElementById("hours");
var ctx = canvas.getContext("2d");
new Chart(ctx).Pie(data);
5 réponses
EDIT: http://jsfiddle.net/nCFGL/223 / mon exemple.
vous devriez pouvoir aimer ce qui suit:
var pieData = [{
value: 30,
color: "#F38630",
label: 'Sleep',
labelColor: 'white',
labelFontSize: '16'
},
...
];
incluez le tableau.js situé à:
il n'est pas nécessaire d'utiliser une autre bibliothèque comme newChart ou d'utiliser les demandes de pull d'autres personnes pour tirer cela. Tout ce que vous avez à faire est de définir un objet options et d'ajouter le label où et comment vous le voulez dans le tooltip.
var optionsPie = {
tooltipTemplate: "<%= label %> - <%= value %>"
}
si vous voulez que le tooltip soit toujours affiché, vous pouvez faire d'autres modifications aux options:
var optionsPie = {
tooltipEvents: [],
showTooltips: true,
onAnimationComplete: function() {
this.showTooltip(this.segments, true);
},
tooltipTemplate: "<%= label %> - <%= value %>"
}
dans vos éléments de données, vous devez ajouter la propriété d'étiquette désirée et la valeur tout.
data = [
{
value: 480000,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Tobacco"
}
];
maintenant, tout ce que vous avez à faire est de passer l'objet options après les données à la nouvelle tarte comme ceci: new Chart(ctx).Pie(data,optionsPie)
et vous êtes fait.
cela fonctionne probablement mieux pour les tartes qui ne sont pas très petites en taille.
la solution de Rachel fonctionne bien, bien que vous devez utiliser le script tiers de raw.githubusercontent.com
il y a maintenant une caractéristique qu'ils montrent sur la page d'accueil lors de l'annonce du script" modulaire". Vous pouvez y voir une légende avec cette structure:
<div class="labeled-chart-container">
<div class="canvas-holder">
<canvas id="modular-doughnut" width="250" height="250" style="width: 250px; height: 250px;"></canvas>
</div>
<ul class="doughnut-legend">
<li><span style="background-color:#5B90BF"></span>Core</li>
<li><span style="background-color:#96b5b4"></span>Bar</li>
<li><span style="background-color:#a3be8c"></span>Doughnut</li>
<li><span style="background-color:#ab7967"></span>Radar</li>
<li><span style="background-color:#d08770"></span>Line</li>
<li><span style="background-color:#b48ead"></span>Polar Area</li>
</ul>
</div>
pour ce faire, ils utilisent l'option de configuration de carte legendTemplate
legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%><li><span style=\"background-color:<%=segments[i].fillColor%>\"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>"
vous pouvez trouver le doumentation ici sur chartjs.org Cela fonctionne pour toutes les cartes bien qu'il ne fasse pas partie du global chart configuration .
puis ils créent la légende et l'ajoutent au DOM comme ceci:
var legend = myPie.generateLegend();
$("#legend").html(legend);
échantillon Voir Aussi mon jsfiddle échantillon
Use ChartNew.js au lieu de Chart.js
...
donc, J'ai retravaillé le tableau.js. La plupart des changements, sont associés aux requêtes dans les numéros "Github" de Chart.js.
et voici un échantillon http://jsbin.com/lakiyu/2/edit
var newopts = {
inGraphDataShow: true,
inGraphDataRadiusPosition: 2,
inGraphDataFontColor: 'white'
}
var pieData = [
{
value: 30,
color: "#F38630",
},
{
value: 30,
color: "#F34353",
},
{
value: 30,
color: "#F34353",
}
]
var pieCtx = document.getElementById('pieChart').getContext('2d');
new Chart(pieCtx).Pie(pieData, newopts);
il fournit même un éditeur GUI http://charts.livegap.com/
si doux.
pour ceux qui utilisent des versions plus récentes.js, vous pouvez définir une étiquette en définissant le rappel pour les tooltips.rappel.étiquette dans les options.
exemple:
var chartOptions = {
tooltips: {
callbacks: {
label: function (tooltipItem, data) {
return 'label';
}
}
}
}