diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index fddd5ce9889..8c5977e1957 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -57,7 +57,7 @@ export default class LineController extends DatasetController { line._chart = this.chart; line._datasetIndex = this.index; line._decimated = !!_dataset._decimated; - line.points = points; + line.points = points.slice(Math.max(this._drawStart - 1, 0), this._drawStart + this._drawCount); const options = this.resolveDatasetElementOptions(mode); if (!this.options.showLine) { diff --git a/src/helpers/helpers.extras.ts b/src/helpers/helpers.extras.ts index 1428419119e..dc34ecf07f9 100644 --- a/src/helpers/helpers.extras.ts +++ b/src/helpers/helpers.extras.ts @@ -98,7 +98,7 @@ export function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatt if (minDefined) { start = _limitValue(Math.min( // @ts-expect-error Need to type _parsed - _lookupByKey(_parsed, iScale.axis, min).lo, + _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1); diff --git a/test/fixtures/controller.line/cubicInterpolationMode/scaleMInMaxLimits.js b/test/fixtures/controller.line/cubicInterpolationMode/scaleMInMaxLimits.js new file mode 100644 index 00000000000..605ac186461 --- /dev/null +++ b/test/fixtures/controller.line/cubicInterpolationMode/scaleMInMaxLimits.js @@ -0,0 +1,35 @@ +module.exports = { + config: { + type: 'line', + data: { + datasets: [ + { + data: [ + {x: -10, y: 150}, + {x: 0, y: 81}, + {x: 10, y: 49}, + {x: 20, y: 32}, + {x: 30, y: 21}, + {x: 35, y: 1}, + {x: 40, y: 16}, + {x: 45, y: 13}, + ], + borderColor: '#ff0000', + cubicInterpolationMode: 'monotone' + } + ] + }, + options: { + scales: { + x: {display: false, type: 'linear', min: 5, max: 37}, + y: {display: false} + } + } + }, + options: { + canvas: { + height: 256, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.line/cubicInterpolationMode/scaleMInMaxLimits.png b/test/fixtures/controller.line/cubicInterpolationMode/scaleMInMaxLimits.png new file mode 100644 index 00000000000..056d4510167 Binary files /dev/null and b/test/fixtures/controller.line/cubicInterpolationMode/scaleMInMaxLimits.png differ diff --git a/test/fixtures/controller.line/cubicInterpolationMode/scaleMaxLimit.js b/test/fixtures/controller.line/cubicInterpolationMode/scaleMaxLimit.js new file mode 100644 index 00000000000..6bae22dfeee --- /dev/null +++ b/test/fixtures/controller.line/cubicInterpolationMode/scaleMaxLimit.js @@ -0,0 +1,35 @@ +module.exports = { + config: { + type: 'line', + data: { + datasets: [ + { + data: [ + {x: -10, y: 150}, + {x: 0, y: 81}, + {x: 10, y: 49}, + {x: 20, y: 32}, + {x: 30, y: 21}, + {x: 35, y: 1}, + {x: 40, y: 16}, + {x: 45, y: 13}, + ], + borderColor: '#ff0000', + cubicInterpolationMode: 'monotone' + } + ] + }, + options: { + scales: { + x: {display: false, type: 'linear', max: 30}, + y: {display: false} + } + } + }, + options: { + canvas: { + height: 256, + width: 512 + } + } +}; diff --git a/test/fixtures/controller.line/cubicInterpolationMode/scaleMaxLimit.png b/test/fixtures/controller.line/cubicInterpolationMode/scaleMaxLimit.png new file mode 100644 index 00000000000..048c8c39084 Binary files /dev/null and b/test/fixtures/controller.line/cubicInterpolationMode/scaleMaxLimit.png differ