Getting Started with ggguides

Gilles Colling

2026-01-07

Overview

ggguides simplifies common legend operations in ggplot2. Instead of memorizing theme element names and their nested structure, you can use intuitive one-liner functions to position, style, and manage legends.

Key features:

Installation

# install.packages("pak")
pak::pak("gcol33/ggguides")

Basic Usage

Let’s create a simple plot to demonstrate the legend helpers:

p <- ggplot(mtcars, aes(mpg, wt, color = factor(cyl))) +
  geom_point(size = 3) +
  labs(color = "Cylinders")

p

Moving the Legend

Position the legend on any side with a single function call:

p + legend_left()

p + legend_bottom()

Inside Positioning

Place the legend inside the plot area using coordinates or shortcuts:

p + legend_inside(position = "topright")

p + legend_inside(x = 0.02, y = 0.98, just = c("left", "top"))

Removing the Legend

p + legend_none()

Styling Legends

Use legend_style() to customize the legend appearance:

p + legend_style(size = 14)

p + legend_style(
  size = 12,
  title_size = 14,
  title_face = "bold",
  background = "#FFF3E0",
  background_color = "#FF9800"
)

Wrapping Legend Entries

For legends with many entries, use legend_wrap() to create multi-column layouts:

ggplot(mpg, aes(displ, hwy, color = class)) +
  geom_point() +
  legend_wrap(ncol = 2)

Combining Functions

ggguides functions compose naturally with the + operator:

ggplot(mpg, aes(displ, hwy, color = class)) +
  geom_point() +
  legend_left() +
  legend_style(size = 12, title_face = "bold", background = "#FFF3E0")

ggplot(mpg, aes(displ, hwy, color = class)) +
  geom_point() +
  legend_wrap(ncol = 2) +
  legend_bottom()

What’s Next