geom_fit_text() shrinks, grows and wraps text to fit inside a defined
geom_bar_text() is a convenience wrapper around
labelling bar plots generated with
geom_bar_text(mapping = NULL, data = NULL, stat = "identity", position = "identity", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, padding.x = grid::unit(1, "mm"), padding.y = grid::unit(1, "mm"), min.size = 8, place = "top", grow = FALSE, reflow = FALSE, hjust = NULL, vjust = NULL, fullheight = NULL, width = NULL, height = NULL, formatter = NULL, contrast = FALSE, outside = TRUE, ...) geom_fit_text(mapping = NULL, data = NULL, stat = "identity", position = "identity", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, padding.x = grid::unit(1, "mm"), padding.y = grid::unit(1, "mm"), min.size = 4, place = "centre", outside = FALSE, grow = FALSE, reflow = FALSE, hjust = NULL, vjust = NULL, fullheight = NULL, width = NULL, height = NULL, formatter = NULL, contrast = FALSE, ...)
|data, stat, position, na.rm, show.legend, inherit.aes, ...||
arguments as for
Horizontal and vertical padding around the text,
Minimum font size, in points. Text that would need to be shrunk below this size to fit the box will be hidden. Defaults to 4 pt.
Where inside the box to place the text. Default is 'centre'; other options are 'topleft', 'top', 'topright', 'right', 'bottomright', 'bottom', 'bottomleft', 'left', and 'center'/'middle' which are both synonyms for 'centre'.
Horizontal and vertical justification of the text. By
default, these are automatically set to appropriate values based on
A function that will be applied to the text before it is
drawn. This is useful when using
Except where noted,
geom_fit_text() behaves more or less like
There are three ways to define the box in which you want the text to be drawn. The extents of the box on the x and y axes are independent, so any combination of these methods can be used:
y aesthetics are used to set the location of the box,
the width or height will be set automatically based on the number of
discrete values in
y aesthetics are used, the width and/or
height of the box can be overridden with a 'width' and/or 'height' argument.
These should be
grid::unit() objects; if not, they will be assumed to use
the native axis scale.
The boundaries of the box can be set using the aesthetics 'xmin' and 'xmax', and/or 'ymin' and 'ymax'.
If the text is too big for the box, it will be shrunk to fit the box. With
grow = TRUE, the text will be made to fill the box completely whether that
requires shrinking or growing.
reflow = TRUE will cause the text to be reflowed (wrapped) to better fit
in the box. If the text cannot be made to fit by reflowing alone, it will be
reflowed then shrunk to fit the box. Existing line breaks in the text will
be respected when reflowing.
(xmin AND xmax) OR x (required)
(ymin AND ymax) OR y (required)
ggplot2::ggplot(ggplot2::presidential, ggplot2::aes(ymin = start, ymax = end, label = name, x = party)) + geom_fit_text(grow = TRUE)