geom_node_text function

Annotate nodes with text

Annotate nodes with text

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, ... )

Arguments

  • mapping: 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.

  • 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: 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.

  • parse: If TRUE, the labels will be parsed into expressions and displayed as described in ?plotmath.

  • nudge_x, nudge_y: Horizontal and vertical adjustment to nudge labels by. Useful for offsetting text from points, particularly on discrete scales.

  • check_overlap: 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().

  • show.legend: 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.

  • repel: 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.

  • 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.

Aesthetics

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

Examples

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)

See Also

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()

Author(s)

Thomas Lin Pedersen

  • Maintainer: Thomas Lin Pedersen
  • License: MIT + file LICENSE
  • Last published: 2024-03-07