
geom_text_repel
adds text directly to the plot.
geom_label_repel
draws a rectangle underneath the text, making it
easier to read. The text labels repel away from each other and away from
the data points.geom_label_repel(mapping = NULL, data = NULL, stat = "identity",
parse = FALSE, ..., box.padding = unit(0.25, "lines"),
label.padding = unit(0.25, "lines"), point.padding = unit(0, "lines"),
label.r = unit(0.15, "lines"), label.size = 0.25, force = 1,
max.iter = 2000, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)geom_text_repel(mapping = NULL, data = NULL, stat = "identity",
parse = FALSE, ..., box.padding = unit(0.25, "lines"),
point.padding = unit(0, "lines"), segment.color = "#666666",
segment.size = 0.5, force = 1, max.iter = 2000, na.rm = FALSE,
show.legend = NA, inherit.aes = TRUE)
layer
. There are
three types of arguments you can use here:
color = "red"
orsize = 3
unit(0.25, "lines")
.unit(0, "lines")
.FALSE
(the default), removes missing values with
a warning. If TRUE
silently removes missing values.NA
, the default, includes if any aesthetics are mapped.
FALSE
never includes, and TRUE
always includes.FALSE
, overrides the default aesthetics,
rather than combining with them. This is most useful for helper functions
that define both data and aesthetics and shouldn't inherit behaviour from
the default plot specification, e.g.
#666666
.geom_label_repel
does not support the rot
parameter
and is considerably slower than geom_text_repel
. The fill
aesthetic controls the background colour of the label.hjust
vjust
nudge_x
nudge_y
position
check_overlap
geom_text
and
geom_label
. See the documentation for those
functions for more details. Differences from those functions are noted
here.Text labels have height and width, but they are physical units, not data units. The amount of space they occupy on that plot is not constant in data units: when you resize a plot, labels stay the same size, but the size of the axes changes. Currently, the text labels will not be repositioned upon resizing a plot. This may change in future releases.
p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars)))
# Avoid overlaps by repelling text labels
p + geom_text_repel()
# Labels with background
p + geom_label_repel()
p + geom_text_repel(family = "Times New Roman",
box.padding = unit(0.5, "lines"))
# Add aesthetic mappings
p + geom_text_repel(aes(colour = factor(cyl)))
p + geom_label_repel(aes(fill = factor(cyl)), colour = "white", fontface = "bold")
p + geom_text_repel(aes(size = wt))
# Scale height of text, rather than sqrt(height)
p + geom_text_repel(aes(size = wt)) + scale_radius(range = c(3,6))
# You can display expressions by setting parse = TRUE. The
# details of the display are described in ?plotmath, but note that
# geom_text_repel uses strings, not expressions.
p + geom_text_repel(aes(label = paste(wt, "^(", cyl, ")", sep = "")),
parse = TRUE)
# Add a text annotation
p +
geom_text_repel() +
annotate("text", label = "plot mpg vs. wt", x = 2, y = 15, size = 8, colour = "red")
Run the code above in your browser using DataLab