✨ use 'nice' axis ticks for linear scales / TAS-795 #4404
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #3978
See 3790bad 😅
Relying on d3's nice implementation sometimes leads to suboptimal results because d3 adds grid lines too eagerly (some examples below). That's why I ended up writing a custom 'nice' function for Grapher. It only adds an additional grid line if any data value exceeds the highest grid line by more than 25%.
Examples of d3.nice where grid lines are placed to eagerly
If any data value is just above a grid line, then showing an additional grid line 'squishes' the rest of the chart.