mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-07 04:39:06 +02:00
Merge remote-tracking branch 'chartjs-origin/master'
This commit is contained in:
commit
b4d8f541bd
@ -221,18 +221,20 @@ module.exports = function(Chart) {
|
||||
ds = chart.data.datasets[i];
|
||||
dsMeta = chart.getDatasetMeta(i);
|
||||
if (dsMeta.type === 'line' && chart.isDatasetVisible(i)) {
|
||||
if (ds.data[index] < 0) {
|
||||
sumNeg += ds.data[index] || 0;
|
||||
var stackedRightValue = yScale.getRightValue(ds.data[index]);
|
||||
if (stackedRightValue < 0) {
|
||||
sumNeg += stackedRightValue || 0;
|
||||
} else {
|
||||
sumPos += ds.data[index] || 0;
|
||||
sumPos += stackedRightValue || 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (value < 0) {
|
||||
return yScale.getPixelForValue(sumNeg + value);
|
||||
var rightValue = yScale.getRightValue(value);
|
||||
if (rightValue < 0) {
|
||||
return yScale.getPixelForValue(sumNeg + rightValue);
|
||||
} else {
|
||||
return yScale.getPixelForValue(sumPos + value);
|
||||
return yScale.getPixelForValue(sumPos + rightValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -278,6 +278,76 @@ describe('Line controller tests', function() {
|
||||
|
||||
});
|
||||
|
||||
it('should update elements when the y scale is stacked and datasets is scatter data', function() {
|
||||
var chart = window.acquireChart({
|
||||
type: 'line',
|
||||
data: {
|
||||
datasets: [{
|
||||
data: [{
|
||||
x: 0,
|
||||
y: 10
|
||||
}, {
|
||||
x: 1,
|
||||
y: -10
|
||||
}, {
|
||||
x: 2,
|
||||
y: 10
|
||||
}, {
|
||||
x: 3,
|
||||
y: -10
|
||||
}],
|
||||
label: 'dataset1'
|
||||
}, {
|
||||
data: [{
|
||||
x: 0,
|
||||
y: 10
|
||||
}, {
|
||||
x: 1,
|
||||
y: 15
|
||||
}, {
|
||||
x: 2,
|
||||
y: 0
|
||||
}, {
|
||||
x: 3,
|
||||
y: -4
|
||||
}],
|
||||
label: 'dataset2'
|
||||
}],
|
||||
labels: ['label1', 'label2', 'label3', 'label4']
|
||||
},
|
||||
options: {
|
||||
scales: {
|
||||
yAxes: [{
|
||||
stacked: true
|
||||
}]
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var meta0 = chart.getDatasetMeta(0);
|
||||
|
||||
[ { x: 38, y: 161 },
|
||||
{ x: 189, y: 419 },
|
||||
{ x: 341, y: 161 },
|
||||
{ x: 492, y: 419 }
|
||||
].forEach(function(values, i) {
|
||||
expect(meta0.data[i]._model.x).toBeCloseToPixel(values.x);
|
||||
expect(meta0.data[i]._model.y).toBeCloseToPixel(values.y);
|
||||
});
|
||||
|
||||
var meta1 = chart.getDatasetMeta(1);
|
||||
|
||||
[ { x: 38, y: 32 },
|
||||
{ x: 189, y: 97 },
|
||||
{ x: 341, y: 161 },
|
||||
{ x: 492, y: 471 }
|
||||
].forEach(function(values, i) {
|
||||
expect(meta1.data[i]._model.x).toBeCloseToPixel(values.x);
|
||||
expect(meta1.data[i]._model.y).toBeCloseToPixel(values.y);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it('should find the correct scale zero when the data is all positive', function() {
|
||||
var chart = window.acquireChart({
|
||||
type: 'line',
|
||||
|
Loading…
Reference in New Issue
Block a user