Switch nested drawing loop: First facets, then by groups#331
Merged
grantmcdermott merged 7 commits intomainfrom Mar 7, 2025
Merged
Switch nested drawing loop: First facets, then by groups#331grantmcdermott merged 7 commits intomainfrom
grantmcdermott merged 7 commits intomainfrom
Conversation
- use datapoints$by rather than raw by
Collaborator
|
sorry, probably won't be able to look at this, but if the tests pass, I can't think of a problem |
Owner
Author
|
Okay, I'll merge tomorrow. @zeileis lmk if you'd like me to hold off for a bit first, although we can always revert if something goes awry. |
Collaborator
|
Grant, this is great, thank you so much for making this effort! Indeed it broke the code in #314 but this was easy to fix: I just had to replace |
Merged
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.
Motivated by various discussions, e.g. #233 (comment), #305 (comment), and #314 (comment).
This PR switches the nested loop that we use for drawing interior plot elements. Specifically, the proposed new nesting logic is:
bywithin each facet)The old nesting logic inverted this relationship—groups first, then facets—but this was mostly just an artifact of historical inertia. (I only implemented facet support much later than group support, which was enabled from the get-go.) In addition, the whole datapoints + dedicated types refactoring (#222) has now made it much easier to keep track of the final state of transformed variables (e.g.,
byvariables that are created internally as part of the relevanttype_drawfunction). All told, looping over facets first seems the most natural way to do things now.All tests are passing locally for me, but @zeileis and @vincentarelbundock please take a look if you can. Achim, I should also flag that this will possibly (probably?) break your PR in #314, but hopefully facets first will simplify other parts of
type_barplot()support. It may be possible to simplify parts oftype_spineplotandtype_ridgetoo, as well as any other types that rely ontinyAxisinternally, but I didn't look into this in great detail.