These functions provide summarised information about built ggplot objects.
Details
There are three types of summary that can be obtained: A summary of the plot layout, a summary of the plot coord, and a summary of plot layers.
Layout summary
The function summarise_layout()
returns a table that provides information about
the plot panel(s) in the built plot. The table has the following columns:
panel
A factor indicating the individual plot panels.
row
Row number in the grid of panels.
col
Column number in the grid of panels.
vars
A list of lists. For each panel, the respective list provides the variables and their values that specify the panel.
xmin
,xmax
The minimum and maximum values of the variable mapped to the x aesthetic, in transformed coordinates.
ymin
,ymax
The minimum and maximum values of the variable mapped to the y aesthetic, in transformed coordinates.
xscale
The scale object applied to the x aesthetic.
yscale
The scale object applied to the y aesthetic.
Importantly, the values for xmin
, xmax
, ymin
, ymax
, xscale
, and yscale
are determined by the variables that are mapped to x
and y
in the aes()
call.
So even if a coord changes how x and y are shown in the final plot (as is the case
for coord_flip()
or coord_polar()
), these changes have no effect on the results
returned by summarise_plot()
.
Coord summary
The function summarise_coord()
returns information about the log base for
coordinates that are log-transformed in coord_trans()
, and it also indicates
whether the coord has flipped the x and y axes.
Layer summary
The function summarise_layers()
returns a table with a single column, mapping
, which
contains information about aesthetic mapping for each layer.
Examples
p <-
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(~class)
b <- ggplot_build(p)
summarise_layout(b)
#> # A tibble: 7 × 10
#> panel row col vars xmin xmax ymin ymax xscale
#> <fct> <int> <int> <list> <dbl> <dbl> <dbl> <dbl> <list>
#> 1 1 1 1 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> 2 2 1 2 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> 3 3 1 3 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> 4 4 2 1 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> 5 5 2 2 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> 6 6 2 3 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> 7 7 3 1 <named list [1]> 1.33 7.27 10.4 45.6 <SclCntnP>
#> # ℹ 1 more variable: yscale <list>
summarise_coord(b)
#> $xlog
#> [1] NA
#>
#> $ylog
#> [1] NA
#>
#> $flip
#> [1] FALSE
#>
summarise_layers(b)
#> # A tibble: 1 × 1
#> mapping
#> <list>
#> 1 <named list [2]>