Open helloint opened 8 months ago
See this demo: https://codesandbox.io/s/chart-js-data-labels-plugin-clip-issue-mqkrgd?file=/src/App.tsx It use zoom and datalabels
When using with zoom, you have to set clip: true on datalabels, otherwise the label will overlap with the yAxis
clip: true
But if did this, the first and the last bar label get cut.
Because it is beyond the chart area.
The document tells me the clip is calling CanvasRenderingContext2D.clip(), so I then took a look at the source code here:
clip
if (model.clip) { area = model.area; ctx.beginPath(); ctx.rect( area.left, area.top, area.right - area.left, area.bottom - area.top); ctx.clip(); }
I guess maybe we can allow a paddingOffset to slightly extend the rect area, to let customer to adjust? like:
var paddingOffset = modal.paddingOffset; if (model.clip) { area = model.area; ctx.beginPath(); ctx.rect( area.left - paddingOffset, area.top - paddingOffset, area.right + paddingOffset * 2 - area.left, area.bottom + paddingOffset * 2 - area.top); ctx.clip(); }
See this demo: https://codesandbox.io/s/chart-js-data-labels-plugin-clip-issue-mqkrgd?file=/src/App.tsx It use zoom and datalabels
When using with zoom, you have to set
clip: true
on datalabels, otherwise the label will overlap with the yAxisBut if did this, the first and the last bar label get cut.
Because it is beyond the chart area.
The document tells me the
clip
is calling CanvasRenderingContext2D.clip(), so I then took a look at the source code here:I guess maybe we can allow a paddingOffset to slightly extend the rect area, to let customer to adjust? like: