Skip to content

Good labels are critical for making your plots accessible to a wider audience. Always ensure the axis and legend labels display the full variable name. Use the plot title and subtitle to explain the main findings. It's common to use the caption to provide information about the data source. tag can be used for adding identification tags to differentiate between multiple plots.


  title = waiver(),
  subtitle = waiver(),
  caption = waiver(),
  tag = waiver(),
  alt = waiver(),
  alt_insight = waiver()



ggtitle(label, subtitle = waiver())



A list of new name-value pairs. The name should be an aesthetic.


The text for the title.


The text for the subtitle for the plot which will be displayed below the title.


The text for the caption which will be displayed in the bottom-right of the plot by default.


The text for the tag label which will be displayed at the top-left of the plot by default.

alt, alt_insight

Text used for the generation of alt-text for the plot. See get_alt_text for examples. alt can also be a function that takes the plot as input and returns text as output. alt also accepts rlang lambda function notation.


The title of the respective axis (for xlab() or ylab()) or of the plot (for ggtitle()).


You can also set axis and legend labels in the individual scales (using the first argument, the name). If you're changing other scale options, this is recommended.

If a plot already has a title, subtitle, caption, etc., and you want to remove it, you can do so by setting the respective argument to NULL. For example, if plot p has a subtitle, then p + labs(subtitle = NULL) will remove the subtitle from the plot.

See also

The plot and axis titles section of the online ggplot2 book.


p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) + geom_point()
p + labs(colour = "Cylinders")

p + labs(x = "New x label")

# The plot title appears at the top-left, with the subtitle
# display in smaller text underneath it
p + labs(title = "New plot title")

p + labs(title = "New plot title", subtitle = "A subtitle")

# The caption appears in the bottom-right, and is often used for
# sources, notes or copyright
p + labs(caption = "(based on data from ...)")

# The plot tag appears at the top-left, and is typically used
# for labelling a subplot with a letter.
p + labs(title = "title", tag = "A")

# If you want to remove a label, set it to NULL.
p +
 labs(title = "title") +
 labs(title = NULL)