View source: R/geom-text_npc.R
geom_label_npc | R Documentation |
geom_text_npc()
adds text directly to the plot.
geom_label_npc()
draws a rectangle behind the text, making it easier
to read. The difference is that x and y mappings are expected to be given in
npc
graphic units. They are intended to be used for positioning text
relative to the physical dimensions of a plot. This can be achieved with
annotate()
except when faceting is used.
geom_label_npc(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
parse = FALSE,
nudge_x = 0,
nudge_y = 0,
label.padding = grid::unit(0.25, "lines"),
label.r = grid::unit(0.15, "lines"),
label.size = 0.25,
na.rm = FALSE,
show.legend = NA,
inherit.aes = FALSE
)
geom_text_npc(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
parse = FALSE,
nudge_x = 0,
nudge_y = 0,
check_overlap = FALSE,
na.rm = FALSE,
show.legend = NA,
inherit.aes = FALSE
)
mapping |
The aesthetic mapping, usually constructed with
|
data |
A layer specific data set - only needed if you want to override the plot defaults. |
stat |
The statistical transformation to use on the data for this layer, as a string. |
position |
Position adjustment, either as a string, or the result of a call to a position adjustment function. |
... |
other arguments passed on to |
parse |
If TRUE, the labels will be parsed into expressions and
displayed as described in |
nudge_x, nudge_y |
Horizontal and vertical adjustment to nudge labels by. Useful for offsetting text from points, particularly on discrete scales. |
label.padding |
Amount of padding around label. Defaults to 0.25 lines. |
label.r |
Radius of rounded corners. Defaults to 0.15 lines. |
label.size |
Size of label border, in mm. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
check_overlap |
If |
Note that the "width" and "height" of a text element are 0, so stacking and dodging text will not work by default, and axis limits are not automatically expanded to include all text. Obviously, labels do have height and width, but they are physical units, not data units. The amount of space they occupy on the plot is not constant in data units: when you resize a plot, labels stay the same size, but the size of the axes changes.
geom_text_npc()
and geom_label_npc()
add labels for each row in
the data, even if coordinates x, y are set to single values in the call to
geom_label_npc()
or geom_text_npc()
. To add labels at specified
points use ggannotate_npc
with ggannotate_npc(geom =
"text", ...)
or ggannotate_npc(geom = "label", ...)
.
A plot layer instance.
You can modify text alignment with the vjust
and
hjust
aesthetics. These can either be a number between 0
(right/bottom) and 1 (top/left) or a character ("left"
,
"middle"
, "right"
, "bottom"
, "center"
,
"top"
). There are two special alignments: "inward"
and
"outward"
. Inward always aligns text towards the center, and outward
aligns it away from the center. When using textual positions a shift is
added based on grouping, however unused levels are not dropped. In plots
with faceting so that not all groups appear in each panel, gaps will appear
in between labels. To solve this pass numeric values for the npc
coordinates of each label instead of character strings.
This geom is identical to 'ggplot2' geom_text
and except that it interprets x
and y
positions in
npc
units. It translates x
and y
coordinates from npc
units to native data units.
geom_text
library(ggplot2)
df <- data.frame(
x = c(0, 0, 1, 1, 0.5),
x_chr = c("left", "left", "right", "right", "center"),
y = c(0, 1, 0, 1, 0.5),
y_chr = c("bottom", "top", "bottom", "top", "middle"),
text = c("bottom-left", "top-left", "bottom-right", "top-right", "center-middle")
)
ggplot2::ggplot(df) +
geom_text_npc(aes(x_npc = x, y_npc = y, label = text))
ggplot2::ggplot(df) +
geom_text_npc(aes(x_npc = x_chr, y_npc = y_chr, label = text))
ggplot2::ggplot(data = mtcars, mapping = aes(wt, mpg)) +
ggplot2::geom_point() +
geom_text_npc(data = df, aes(x_npc = x, y_npc = y, label = text))
ggplot2::ggplot(data = mtcars, mapping = aes(wt, mpg)) +
ggplot2::geom_point() +
geom_text_npc(data = df, aes(x_npc = x, y_npc = y, label = text)) +
ggplot2::expand_limits(y = 40, x = 6)
ggplot2::ggplot(data = mtcars) +
ggplot2::geom_point(mapping = aes(wt, mpg)) +
geom_label_npc(data = df, aes(x_npc = x, y_npc = y, label = text))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.