chartjs / chartjs-plugin-annotation

Annotation plugin for Chart.js
MIT License
604 stars 328 forks source link

Draw line annotation on top of first dataset but under second dataset #887

Closed andy1547 closed 1 month ago

andy1547 commented 1 year ago

Currently using the drawTime: beforeDatasetsDraw option to ensure the first dataset is drawn on top of the line annotation (I'm using plugin to draw a y = 0 line).

I'd like to add a second dataset that gets drawn under the line annotation, the use case is that I'm using the fill: 0 option for this dataset so the line annotation should take preference.

The z index order ASC should be: dataset #2 (using fill up to dataset #1) line annotation (y = 0) dataset #1 (not filled, just a line)

Is this possible? I assume the z index option is only in relation to other annotations and nothing to do with datasets. I'm using chart.js v4.3.0 and v2.2.1 of the plugin.

stockiNail commented 1 year ago

Is this possible? I assume the z index option is only in relation to other annotations and nothing to do with datasets.

Your assumption is correct, unfortunately for your use case. The annotations are not related to the datasets. Maybe it could be an enhancement, relating the drawTime to the dataset index on top of drawing phase.

stockiNail commented 1 year ago

@andy1547 FYI I have submitted a PR toi enable the drawtime for a specific dataset index. https://github.com/chartjs/chartjs-plugin-annotation/pull/889