var valueCount = getValueCount(scale);
for (i = 0; i < valueCount; i++) {
pointPosition = scale.getPointPosition(i, scale.drawingArea + 5);
- textSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i] || '');
+ textSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i]);
scale._pointLabelSizes[i] = textSize;
// Add quarter circle to make degree 0 mean top of circle
var angle = helpers.toDegrees(angleRadians);
ctx.textAlign = getTextAlignForAngle(angle);
adjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);
- fillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.lineHeight);
+ fillText(ctx, scale.pointLabels[i], pointLabelPosition, plFont.lineHeight);
}
ctx.restore();
}
LinearScaleBase.prototype.convertTicksToLabels.call(me);
// Point labels
- me.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);
+ me.pointLabels = me.chart.data.labels.map(function() {
+ var label = helpers.callback(me.options.pointLabels.callback, arguments, me);
+ return label || label === 0 ? label : '';
+ });
},
getLabelForIndex: function(index, datasetIndex) {
expect(chart.scale.pointLabels).toEqual(['0', '1', '2', '3', '4']);
});
+ it('Should build point labels from falsy values', function() {
+ var chart = window.acquireChart({
+ type: 'radar',
+ data: {
+ datasets: [{
+ data: [10, 5, 0, 25, 78, 20]
+ }],
+ labels: [0, '', undefined, null, NaN, false]
+ }
+ });
+
+ expect(chart.scale.pointLabels).toEqual([0, '', '', '', '', '']);
+ });
+
it('should correctly set the center point', function() {
var chart = window.acquireChart({
type: 'radar',