These geoms are equivalent in functionality to ggplot2::geom_text()
and
ggplot2::geom_label()
and allows for simple annotation of nodes.
geom_node_text(
mapping = NULL,
data = NULL,
position = "identity",
parse = FALSE,
nudge_x = 0,
nudge_y = 0,
check_overlap = FALSE,
show.legend = NA,
repel = FALSE,
...
)geom_node_label(
mapping = NULL,
data = NULL,
position = "identity",
parse = FALSE,
nudge_x = 0,
nudge_y = 0,
label.padding = unit(0.25, "lines"),
label.r = unit(0.15, "lines"),
label.size = 0.25,
show.legend = NA,
repel = FALSE,
...
)
Set of aesthetic mappings created by ggplot2::aes()
or ggplot2::aes_()
. By default x and y are mapped to x and y in
the node data.
The data to be displayed in this layer. There are three options:
If NULL
, the default, the data is inherited from the plot
data as specified in the call to ggplot()
.
A data.frame
, or other object, will override the plot
data. All objects will be fortified to produce a data frame. See
fortify()
for which variables will be created.
A function
will be called with a single argument,
the plot data. The return value must be a data.frame
, and
will be used as the layer data. A function
can be created
from a formula
(e.g. ~ head(.x, 10)
).
Position adjustment, either as a string, or the result of
a call to a position adjustment function. Cannot be jointly specified with
nudge_x
or nudge_y
.
If TRUE
, the labels will be parsed into expressions and
displayed as described in ?plotmath
.
Horizontal and vertical adjustment to nudge labels by. Useful for offsetting text from points, particularly on discrete scales.
If TRUE
, text that overlaps previous text in the
same layer will not be plotted. check_overlap
happens at draw time and in
the order of the data. Therefore data should be arranged by the label
column before calling geom_text()
. Note that this argument is not
supported by geom_label()
.
logical. Should this layer be included in the legends?
NA
, the default, includes if any aesthetics are mapped.
FALSE
never includes, and TRUE
always includes.
It can also be a named logical vector to finely select the aesthetics to
display.
If TRUE
, text labels will be repelled from each other
to avoid overlapping, using the GeomTextRepel
geom from the
ggrepel package.
Other arguments passed on to layer()
. These are
often aesthetics, used to set an aesthetic to a fixed value, like
colour = "red"
or size = 3
. They may also be parameters
to the paired geom/stat.
Amount of padding around label. Defaults to 0.25 lines.
Radius of rounded corners. Defaults to 0.15 lines.
Size of label border, in mm.
geom_node_text
understands the following aesthetics. Bold aesthetics are
automatically set, but can be overwritten. Italic aesthetics are required but
not set by default
x
y
label
alpha
angle
colour
family
fontface
hjust
lineheight
size
vjust
Thomas Lin Pedersen
Other geom_node_*:
geom_node_arc_bar()
,
geom_node_circle()
,
geom_node_point()
,
geom_node_range()
,
geom_node_sf()
,
geom_node_tile()
,
geom_node_voronoi()
require(tidygraph)
gr <- create_notable('bull') %>%
mutate(class = sample(letters[1:3], n(), replace = TRUE))
ggraph(gr, 'stress') +
geom_node_point(aes(label = class))
ggraph(gr, 'stress') +
geom_node_label(aes(label = class), repel = TRUE)
Run the code above in your browser using DataLab