Parity for minor+major ticks+ticklabels#541
Open
lucasb-eyer wants to merge 3 commits intompld3:masterfrom
Open
Parity for minor+major ticks+ticklabels#541lucasb-eyer wants to merge 3 commits intompld3:masterfrom
lucasb-eyer wants to merge 3 commits intompld3:masterfrom
Conversation
97f3d3d to
9a1020a
Compare
Previously, when manually setting tick positions, the gridlines would not follow, and instead remain at auto-detection positions, or maybe some other arbitrary-seeming positions. This fixes it. Disclaimer: this was co-developed with gpt-5.1-codex, which identified the issue and proposed the fix, I tested and simplified its code a bit.
The js-side of mpld3/mplexporter#73 and fixes mpld3#527 Also adds some tests for minor-grid. It seems that the uglify is getting tripped up by `??`, so we should consider upgrading it, because a little chunk of this code could be quite a bit less verbose with that. Anyways, as usual disclaimer about having co-developed this with gpt-5.1-codex, but also tested and carefully reviewed/cleaned it. Here's what it has to say: - carry filtered minor tick values/length into axis props and draw a separate minor grid/tick layer - streamline axis getGrid tick selection and style passthrough to grids
A few things were missing: - minor ticklabels altogether - major tick length setting - default tick length was arbitrary - make it same as matplotlib. This change brings both to parity, and makes sure they remain by using the same code for handling of most tick-related things, whether major or minor (except tickNr which only makes sense for major). After this, ticks and ticklabels have parity with standard matplotlib, I tested multiple scenarios (automatic vs manual setting and labeling, linear vs log axis, and similar) and compared against stock matplotlib. As usual, disclaiming I co-developed this with gpt-5.1-codex. We went through a lot of iterations here, both machine and me coding to get to this solution. Here's what it has to say: - Export and render minor ticks/grids with the same formatter/length handling as majors, including custom formatter overrides - Consolidate tick value/formatter application via a shared helper for both major and minor axes - Apply Matplotlib tick lengths to both major and minor ticks; keep minor labels hidden when only positions are set by default - Add tests for minor grid/tick export, minor label defaults, and major tick length”
9a1020a to
e81d8e3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The js-side of mpld3/mplexporter#74 ; the first two commits belong to other PRs and will disappear upon their merge + this rebase, so only look at the last commit.
A few things were missing:
This change brings both to parity, and makes sure they remain by using
the same code for handling of most tick-related things, whether major or
minor (except tickNr which only makes sense for major).
After this, ticks and ticklabels have parity with standard matplotlib, I
tested multiple scenarios (automatic vs manual setting and labeling,
linear vs log axis, and similar) and compared against stock matplotlib.
As usual, disclaiming I co-developed this with gpt-5.1-codex. We went
through a lot of iterations here, both machine and me coding to get to this solution.
Here's what it has to say: