Как добавить ярлык в chart.js для круговой диаграммы
Я показываю круговую диаграмму. Но как показывать метки в круговых диаграммах.
Ниже приведена диаграмма chart.js для круговой диаграммы.
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);
};
и ниже приведен код html файла для отображения круговой диаграммы
код:
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);
Ответы
Ответ 1
EDIT: http://jsfiddle.net/nCFGL/223/ Мой пример.
Вы должны уметь выглядеть следующим образом:
var pieData = [{
value: 30,
color: "#F38630",
label: 'Sleep',
labelColor: 'white',
labelFontSize: '16'
},
...
];
Включите Chart.js, расположенный по адресу:
https://github.com/nnnick/Chart.js/pull/35
Ответ 2
Нет необходимости использовать другую библиотеку, такую как newChart, или использовать другие люди для запроса запросов. Все, что вам нужно сделать, это определить объект опций и добавить метку везде, где бы вы ни находились, в подсказке.
var optionsPie = {
tooltipTemplate: "<%= label %> - <%= value %>"
}
Если вы хотите, чтобы всплывающая подсказка всегда показывалась, вы можете внести некоторые изменения в параметры:
var optionsPie = {
tooltipEvents: [],
showTooltips: true,
onAnimationComplete: function() {
this.showTooltip(this.segments, true);
},
tooltipTemplate: "<%= label %> - <%= value %>"
}
В ваших элементах данных вы должны добавить желаемое свойство и значение метки и все.
data = [
{
value: 480000,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Tobacco"
}
];
Теперь все, что вам нужно сделать, это передать объект options после данных на новый Pie, как это: new Chart(ctx).Pie(data,optionsPie)
и вы закончили.
Это, вероятно, лучше всего подходит для пирогов, размер которых невелик.
Круговая диаграмма с метками
Ответ 3
Решение Rachel работает нормально, хотя вам нужно использовать сторонний script из raw.githubusercontent.com
К настоящему времени есть функция, которую они показывают на целевой странице при рекламе "модульного" script. В этой структуре вы можете увидеть легенду:
<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>
Для этого используется опция конфигурации диаграммы 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>"
Вы можете найти doumentation здесь на chartjs.org
Это работает для всех диаграмм, хотя это не является частью глобальной конфигурации диаграммы .
Затем они создают легенду и добавляют ее в DOM следующим образом:
var legend = myPie.generateLegend();
$("#legend").html(legend);
Пример
См. Также мой образец JSFiddle
Ответ 4
Используйте ChartNew.js вместо Chart.js
...
Итак, я переработал Chart.js. Большинство изменений связаны с запросами в вопросах "GitHub" Chart.js.
И вот пример 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);
Он даже предоставляет графический редактор http://charts.livegap.com/
Так мило.
Ответ 5
Для тех, кто использует более новые версии Chart.js, вы можете установить метку, установив обратный вызов для tooltips.callbacks.label в параметрах.
Пример этого:
var chartOptions = {
tooltips: {
callbacks: {
label: function (tooltipItem, data) {
return 'label';
}
}
}
}