R: A theme tuned for graph visualizations

theme_graph {ggraph} | R Documentation

## A theme tuned for graph visualizations

### Description

When plotting graphs, networks, and trees the coordinate values are often of no importance and axes are thus a distraction. `ggraph` comes with a build-in theme that removes redundant elements in order to put focus on the data. Furthermore the default behaviour is to use a narrow font so text takes up less space. Theme colour is defined by a background and foreground colour where the background defines the colour of the whole graphics area and the foreground defines the colour of the strip and border. By default strip and border is turned off as it is an unnecessary element unless facetting is used. To add a foreground colour to a plot that is already using `theme_graph` the `th_foreground` helper is provided. In order to use this appearance as default use the `set_graph_style` function. An added benefit of this is that it also changes the default text-related values in the different geoms for a completely coherent look. `unset_graph_style` can be used to revert the defaults back to their default settings (that is, they are not necessarily reverted back to what they were prior to calling `set_graph_style`). The `th_no_axes()` helper is provided to modify an existing theme so that grid and axes are removed.

### Usage

    theme_graph(
      base_family = "Arial Narrow",
      base_size = 11,
      background = "white",
      foreground = NULL,
      border = TRUE,
      text_colour = "black",
      bg_text_colour = text_colour,
      fg_text_colour = text_colour,
      title_family = base_family,
      title_size = 18,
      title_face = "bold",
      title_margin = 10,
      title_colour = bg_text_colour,
      subtitle_family = base_family,
      subtitle_size = 12,
      subtitle_face = "plain",
      subtitle_margin = 15,
      subtitle_colour = bg_text_colour,
      strip_text_family = base_family,
      strip_text_size = 10,
      strip_text_face = "bold",
      strip_text_colour = fg_text_colour,
      caption_family = base_family,
      caption_size = 9,
      caption_face = "italic",
      caption_margin = 10,
      caption_colour = bg_text_colour,
      plot_margin = margin(30, 30, 30, 30)
    )

    th_foreground(foreground = "grey80", fg_text_colour = NULL, border = FALSE)

    th_no_axes()

    set_graph_style(
      family = "Arial Narrow",
      face = "plain",
      size = 11,
      text_size = 11,
      text_colour = "black",
      ...
    )

    unset_graph_style()

### Arguments

`base_size, size, text_size, title_size, subtitle_size, strip_text_size, caption_size` | The size to use for the various text elements. `text_size` will be used as geom defaults
`background` | The colour to use for the background. This theme sets all background elements except for plot.background to `element_blank` so this controls the background for all elements of the plot. Set to `NA` to remove the background (thus making the plot transparent)
`foreground` | The colour of foreground elements, specifically strip and border. Set to `NA` to remove.
`border` | Logical. Should border be drawn if a foreground colour is provided?
`text_colour, bg_text_colour, fg_text_colour, title_colour, subtitle_colour, strip_text_colour, caption_colour` | The colour of the text in the various text elements
`title_margin, subtitle_margin, caption_margin` | The margin to use between the text elements and the plot area
`plot_margin` | The plot margin
`family, base_family, title_family, subtitle_family, strip_text_family, caption_family` | The font to use for the different elements
`face, title_face, subtitle_face, strip_text_face, caption_face` | The fontface to use for the various text elements
`...` | Parameters passed on the `theme_graph`

### Examples

    library(tidygraph)
    graph <- as_tbl_graph(highschool)

    ggraph(graph) + geom_edge_link() + geom_node_point() + theme_graph()

[Package ggraph version 2.0.2 Index]