File: geom_node_range.R

package info (click to toggle)
r-cran-ggraph 2.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,648 kB
  • sloc: cpp: 1,219; makefile: 2
file content (46 lines) | stat: -rw-r--r-- 1,327 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#' Show nodes as a line spanning a horizontal range
#'
#' This geom is most useful together with the [fabric][layout_tbl_graph_fabric]
#' layout for showing the horizontal span of each node.
#'
#' @section Aesthetics:
#' `geom_node_point` understand the following aesthetics. Bold aesthetics are
#' automatically set, but can be overridden.
#'
#' - **x**
#' - **xend**
#' - **y**
#' - **yend**
#' - alpha
#' - colour
#' - linetype
#' - size
#' - filter
#'
#' @inheritParams ggplot2::geom_linerange
#'
#' @param mapping Set of aesthetic mappings created by [ggplot2::aes()]
#' or [ggplot2::aes_()]. By default x is mapped to xmin, xend is mapped to xmax
#' and y and yend are mapped to y in the node data.
#'
#' @author Thomas Lin Pedersen
#'
#' @family geom_node_*
#'
#' @examples
#' require(tidygraph)
#' gr <- as_tbl_graph(highschool)
#'
#' ggraph(gr, layout = 'fabric') +
#'   geom_node_range()
#' @export
#'
geom_node_range <- function(mapping = NULL, data = NULL, position = 'identity',
                            show.legend = NA, ...) {
  mapping <- aes_intersect(mapping, aes(x = xmin, xend = xmax, y = y, yend = y))
  layer(
    data = data, mapping = mapping, stat = StatFilter, geom = GeomSegment,
    position = position, show.legend = show.legend, inherit.aes = FALSE,
    params = list(na.rm = FALSE, ...)
  )
}