Skip to content

Commit c0478f6

Browse files
committed
Better handling of mixed line / scatter charts
1 parent 3830216 commit c0478f6

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

src/controllers/controller.line.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ var elements = require('../elements/index');
55
var helpers = require('../helpers/index');
66

77
defaults._set('line', {
8-
showLines: true,
98
spanGaps: false,
109

1110
hover: {
@@ -26,10 +25,6 @@ defaults._set('line', {
2625

2726
module.exports = function(Chart) {
2827

29-
function lineEnabled(dataset, options) {
30-
return helpers.valueOrDefault(dataset.showLine, options.showLines);
31-
}
32-
3328
Chart.controllers.line = Chart.DatasetController.extend({
3429

3530
datasetElementType: elements.Line,
@@ -46,7 +41,7 @@ module.exports = function(Chart) {
4641
var scale = me.getScaleForId(meta.yAxisID);
4742
var i, ilen, custom;
4843
var dataset = me.getDataset();
49-
var showLine = lineEnabled(dataset, options);
44+
var showLine = me._lineEnabled(dataset, options);
5045

5146
// Update Line
5247
if (showLine) {
@@ -300,7 +295,7 @@ module.exports = function(Chart) {
300295
var halfBorderWidth;
301296
var i = 0;
302297

303-
if (lineEnabled(me.getDataset(), chart.options)) {
298+
if (me._lineEnabled(me.getDataset(), chart.options)) {
304299
halfBorderWidth = (meta.dataset._model.borderWidth || 0) / 2;
305300

306301
helpers.canvas.clipArea(chart.ctx, {
@@ -340,5 +335,13 @@ module.exports = function(Chart) {
340335
model.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);
341336
model.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);
342337
},
338+
339+
/**
340+
* To be called only by scatter chart
341+
* @private
342+
*/
343+
_lineEnabled: function(dataset, options) {
344+
return helpers.valueOrDefault(dataset.showLine, helpers.valueOrDefault(options.showLines, true));
345+
}
343346
});
344347
};

src/controllers/controller.scatter.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
var defaults = require('../core/core.defaults');
4+
var helpers = require('../helpers/index');
45

56
defaults._set('scatter', {
67
hover: {
@@ -20,8 +21,6 @@ defaults._set('scatter', {
2021
}]
2122
},
2223

23-
showLines: false,
24-
2524
tooltips: {
2625
callbacks: {
2726
title: function() {
@@ -36,7 +35,15 @@ defaults._set('scatter', {
3635

3736
module.exports = function(Chart) {
3837

39-
// Scatter charts use line controllers
40-
Chart.controllers.scatter = Chart.controllers.line;
38+
Chart.controllers.scatter = Chart.controllers.line.extend({
39+
40+
/**
41+
* @private
42+
*/
43+
_lineEnabled: function(dataset, options) {
44+
return helpers.valueOrDefault(dataset.showLine, helpers.valueOrDefault(options.showLines, false));
45+
}
46+
47+
});
4148

4249
};

src/core/core.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ defaults._set('global', {
1919
defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
2020
defaultFontSize: 12,
2121
defaultFontStyle: 'normal',
22-
showLines: true,
2322

2423
// Element defaults defined in element extensions
2524
elements: {},

0 commit comments

Comments
 (0)