Skip to content

Commit b22d641

Browse files
committed
feat: axis option to not draw limitlines
1 parent 511c16d commit b22d641

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

src/charting/charts/BarLineChartBase.ts

+15-10
Original file line numberDiff line numberDiff line change
@@ -173,19 +173,24 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
173173
if (this.mData === null) return;
174174
const startTime = Date.now();
175175

176-
177176
// execute all drawing commands
178177
this.drawGridBackground(canvas);
179178

180179
if (this.mAutoScaleMinMaxEnabled) {
181180
this.autoScale();
182181
}
182+
const leftEnabled = this.mAxisLeft.isEnabled();
183+
const rightEnabled = this.mAxisRight.isEnabled();
184+
const xEnabled = this.mXAxis.isEnabled();
185+
const leftLimitEnabled = leftEnabled && this.mAxisLeft.isDrawLimitLinesEnabled();
186+
const rightLimitEnabled = rightEnabled && this.mAxisRight.isDrawLimitLinesEnabled();
187+
const xLimitEnabled = xEnabled && this.mXAxis.isDrawLimitLinesEnabled();
183188

184-
if (this.mAxisLeft.isEnabled()) this.mAxisRendererLeft.computeAxis(this.mAxisLeft.mAxisMinimum, this.mAxisLeft.mAxisMaximum, this.mAxisLeft.isInverted());
189+
if (leftEnabled) this.mAxisRendererLeft.computeAxis(this.mAxisLeft.mAxisMinimum, this.mAxisLeft.mAxisMaximum, this.mAxisLeft.isInverted());
185190

186-
if (this.mAxisRight.isEnabled()) this.mAxisRendererRight.computeAxis(this.mAxisRight.mAxisMinimum, this.mAxisRight.mAxisMaximum, this.mAxisRight.isInverted());
191+
if (rightEnabled) this.mAxisRendererRight.computeAxis(this.mAxisRight.mAxisMinimum, this.mAxisRight.mAxisMaximum, this.mAxisRight.isInverted());
187192

188-
if (this.mXAxis.isEnabled()) this.mXAxisRenderer.computeAxis(this.mXAxis.mAxisMinimum, this.mXAxis.mAxisMaximum, false);
193+
if (xEnabled) this.mXAxisRenderer.computeAxis(this.mXAxis.mAxisMinimum, this.mXAxis.mAxisMaximum, false);
189194

190195
this.mXAxisRenderer.renderAxisLine(canvas);
191196
this.mAxisRendererLeft.renderAxisLine(canvas);
@@ -197,11 +202,11 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
197202

198203
if (this.mAxisRight.isDrawGridLinesBehindDataEnabled()) this.mAxisRendererRight.renderGridLines(canvas);
199204

200-
if (this.mXAxis.isEnabled() && this.mXAxis.isDrawLimitLinesBehindDataEnabled()) this.mXAxisRenderer.renderLimitLines(canvas);
205+
if (xLimitEnabled && this.mXAxis.isDrawLimitLinesBehindDataEnabled()) this.mXAxisRenderer.renderLimitLines(canvas);
201206

202-
if (this.mAxisLeft.isEnabled() && this.mAxisLeft.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererLeft.renderLimitLines(canvas);
207+
if (leftLimitEnabled && this.mAxisLeft.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererLeft.renderLimitLines(canvas);
203208

204-
if (this.mAxisRight.isEnabled() && this.mAxisRight.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererRight.renderLimitLines(canvas);
209+
if (rightLimitEnabled && this.mAxisRight.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererRight.renderLimitLines(canvas);
205210

206211
// make sure the data cannot be drawn outside the content-rect
207212
let clipRestoreCount = canvas.save();
@@ -222,11 +227,11 @@ export abstract class BarLineChartBase<U extends Entry, D extends IBarLineScatte
222227

223228
this.mRenderer.drawExtras(canvas);
224229

225-
if (this.mXAxis.isEnabled() && !this.mXAxis.isDrawLimitLinesBehindDataEnabled()) this.mXAxisRenderer.renderLimitLines(canvas);
230+
if (xLimitEnabled && !this.mXAxis.isDrawLimitLinesBehindDataEnabled()) this.mXAxisRenderer.renderLimitLines(canvas);
226231

227-
if (this.mAxisLeft.isEnabled() && !this.mAxisLeft.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererLeft.renderLimitLines(canvas);
232+
if (leftLimitEnabled && !this.mAxisLeft.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererLeft.renderLimitLines(canvas);
228233

229-
if (this.mAxisRight.isEnabled() && !this.mAxisRight.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererRight.renderLimitLines(canvas);
234+
if (rightLimitEnabled && !this.mAxisRight.isDrawLimitLinesBehindDataEnabled()) this.mAxisRendererRight.renderLimitLines(canvas);
230235

231236
this.mXAxisRenderer.renderAxisLabels(canvas);
232237
this.mAxisRendererLeft.renderAxisLabels(canvas);

src/charting/components/AxisBase.ts

+17
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ export abstract class AxisBase extends ComponentBase {
9898
*/
9999
protected mLimitLines: LimitLine[] = [];
100100

101+
/**
102+
* flag indicating if the limit lines are drawn
103+
*/
104+
protected mDrawLimitLines = true;
101105
/**
102106
* flag indicating the limit lines layer depth
103107
*/
@@ -420,6 +424,19 @@ export abstract class AxisBase extends ComponentBase {
420424
public isDrawLimitLinesBehindDataEnabled() {
421425
return this.mDrawLimitLineBehindData;
422426
}
427+
/**
428+
* If this is set to false, the LimitLines are not drawn
429+
* otherwise on top. Default: false
430+
*
431+
* @param enabled
432+
*/
433+
public setDrawLimitLines(enabled) {
434+
this.mDrawLimitLines = enabled;
435+
}
436+
437+
public isDrawLimitLinesEnabled() {
438+
return this.mDrawLimitLines;
439+
}
423440

424441
/**
425442
* If this is set to false, the grid lines are draw on top of the actual data,

0 commit comments

Comments
 (0)