The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.