Adding a title
Base R plotting functions come with an argument named main
that allows adding a title to the plot.
curve(sin, -10 , 10,
main = "Title") # Title
Adding a subtitle
You can also add a subtitle, which will be positioned under the plot, making use of the sub
argument.
curve(sin, -10 , 10,
main = "Title", # Title
sub = "Subtitle") # Subtitle
Color customization
The title and the subtitle colors can be customized making use of col.main
and col.sub
arguments, respectively.
curve(sin, -10 , 10,
main = "Title", # Title
col.main = "red", # Title color
sub = "Subtitle", # Subtitle
col.sub = "orange") # Subtitle color
title
function
You can use the title
function to add a title, a subtitle and the axis labels, separately or at the same time.
Adding a title with title
function
You can add a title to a base R plot using the title
function. This is equivalent to set the argument main
of the plot
function.
curve(sin, -10 , 10)
title(main = "My title")
Adding a subtitle with title
function
The title
function also supports adding a subtitle with the sub
argument.
curve(sin, -10 , 10)
title(main = "My title",
sub = "My subtitle")
Adding axes labels with title
function
You can also specify the axis labels using this function. Note that you will need to specify ann = FALSE
inside your plotting function to avoid displaying the axes labels.
curve(sin, -10 , 10, ann = FALSE)
title(main = "My title",
sub = "My subtitle",
xlab = "Custom X-axis label",
ylab = "Custom Y-axis label")
The difference between using this function instead of the arguments is that the arguments passed to the title
function only affect the texts you are adding. In addition, you can customize every single texts using the title
function several times.
Adjust all texts
You can adjust the position of the title with the adj
argument, that takes values from 0 (left-justified) to 1 (right-justified). Default value is 0.5.
curve(sin, -10 , 10,
main = "Title",
sub = "Subtitle",
adj = 0.75)
Adjust only the title
However, if you specify the argument adj
inside your plotting function all text will be adjusted. If you only want some texts adjusted use it inside the title
function.
curve(sin, -10 , 10,
sub = "Subtitle")
title("My title", adj = 0)
Line adjustment
The title
function also supports the argument line
that moves the title up or down for values upper or lower than 1.7 (aprox.), respectively. Note that negative values will move the title inside the plot area.
curve(sin, -10 , 10,
sub = "Subtitle")
title("My title", line = 0.1)
The latter can also be used to adjust the subtitle or the axes labels, but the default values are different. You will need to fine-tune them to achieve the desired result.
You can also add mathematical expressions to your titles and subtitles.
Option 1. Use the expression
function. Type demo(plotmath)
or ?plotmath
to see the full list of mathematical annotations.
curve(sin, -10 , 10,
main = expression(x %in% {}(-10, 10)))
Option 2. If you prefer using a LaTex-like notation you can use the Tex
function from latex2exp
package. Note that this function translates the notation from LaTeX to a plotmath
expression, so both options support the same mathematical annotations.
# install.packages("latex2exp")
library(latex2exp)
curve(sin, -10 , 10,
main = TeX('$x \\in (-10, 10)$'))
See also