Open teunbrand opened 2 months ago
This PR had an unexpected interaction with get_alt_text()
when the alt-text was a function (introduced in #5079).
The problem was that alt-text functions could no longer read out plot labels before the plot is build, so the solution here is to apply get_alt_text()
-functions to build plots.
This PR aims to fix #4631 and fix #5894 and competes with #5878.
Briefly, this is also an attempt to derive default labels from the 'label' attribute.
In contrast to #5878, this resolves labels in the
ggplot_build()
stage, thereby circumventing some limitations of that approach discussed yonder. It also feels 'cleaner', as there is just a single place where default labels are determined and we have no need to moonlight inggplot_add()
methods (notable exception isggplot_add.labels()
for obvious reason that these are user specified non-default labels). The drawback is that we desecrateggplot_build()
.Let's demonstrate using plots that are limitations in the other PR. Labels are not baked in at construction time, so
%+%
data replacement works as intended.Naively, it doesn't appear to work when
data
is not a data.frame.However, this is just because
subset()
drops attributes. If we usedplyr::filter()
that doesn't drop attributes, it works just fine.Created on 2024-05-02 with reprex v2.1.0
The choice is thus:
5878 with limitations, but not touching
ggplot_build()
OR
5879 without (known) limitations, but touching
ggplot_build()