How to add ggplot2 Titles in R?
How to add ggplot2 Titles in R, The ggplot2 data visualization toolkit makes it simple to build stunning charts from scratch in R.
However, unless you specify one, ggplot2 does not offer a title for the charts. The full steps for adding and changing titles to ggplot2 charts are covered in this tutorial.
How to add ggplot2 Titles in R
The code below demonstrates how to utilize the built-in iris dataset with ggplot2 to make a grouped boxplot.
library(ggplot2) ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot()
We can use the ggtitle() method to add a title to the chart.
ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + ggtitle('Sepal Length by Species')
Note: To construct the exact same title, use labs(title=’Sepal Length by Species).
How to Center a Title in ggplot2
Titles in ggplot2 are left-aligned by default. This, according to Hadley Wickham, the inventor of ggplot2, is due to the fact that subtitles look better with a left-aligned title.
You can use the following code to center a ggplot2 title
theme(plot.title = element_text(hjust = 0.5))
Here’s how that works in real life
ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + ggtitle('Sepal Length by Species')+theme(plot.title = element_text(hjust = 0.5))
How to Change a ggplot2 Title’s Font
The typeface title can be changed in a variety of ways, including
family: font family
face: typeface style. “italic”, “bold”, and “bold.italic” are available options.
color: font color
size: font size in pts
hjust: horizontal justification between 0 and 1
vjust: vertical justification between 0 and 1
lineheight: line-height, i.e. the spacing between lines for multi-line titles
Here is an illustration of how to change some of these features.
ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + ggtitle('Sepal Length by Species') + theme(plot.title = element_text(hjust=0.5, color="blue", size=20, face="bold"))
Making Multi-Line Titles in ggplot2
Simply include n where you would like a new line to begin if your title is abnormally long. For instance.
ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + ggtitle('Sepal Length by Species\nSample size (n = 150)')