-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Implement smart merging of guides so inappropriate key glyphs are omitted #3648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
For reference, I think this is the relevant location: Lines 244 to 247 in 6424808
I think for this to work, |
I don't have an implementation strategy at this time, I just suspect that it's somehow possible. |
Thanks for filing the issue. It seems my comment on #3646 (comment) went in the wrong direction, sorry... This looks easier than I thought (though I have no idea the actual implementation would be). |
I draft a pr (#3649) and try to fix this issue. |
My pr is the first step and is not smart enough. |
I don't think there currently is a way for the guides to extract some information on whether a layer uses a particular value of an aesthetic. The layers, as presented to the guides, don't know about their data. The scales don't keep track of a layerwise-aesthetic mapping. It might be possible to do this if either the scale keeps track over what layer has what values, or the layer keeps track over what values for a particular aesthetic were used. However, this would possibly introduce an extra stateful thing in the system, so I don't know if this is wise. |
After thinking about this for a bit, I think it should be possible to pass along the layer data to the Maintainers, do you think it is OK to expose the layer data to the guides? If so, I think I can take this along in the guides to ggproto conversion. |
It seems like a pragmatic solution, but maybe pass it into the training part of the guide instead to compartmentalise it a bit? |
Currently, if two layers have non-overlapping values in an aesthetic and different key glyphs, both glyphs are drawn for all data values, as seen here:
This is suboptimal, because the line glyph is not sensible for the "points" entry and the point glyph is not sensible for the "regression line" entry. The workaround currently is to use
override.aes()
, but it is cumbersome and requires deep knowledge about the default settings for various key glyphs:There should be an option, and maybe made the default, to produce the second outcome whenever appropriate.
The text was updated successfully, but these errors were encountered: