How to Change Font Size of Plot Title When the Title Is a Variable in ggplot2 in R?
Last Updated :
23 Jul, 2025
In data visualization with ggplot2, one often needs to customize plot titles to enhance readability and aesthetics. There are situations where the title might be stored as a variable, and you want to control the font size dynamically. This can be useful when you're generating multiple plots programmatically or working with dynamic reports using R Programming Language.
In this article, we will cover:
- Setting up a plot title as a variable in
ggplot2 - Changing the font size using
theme() and element_text() - Practical examples to demonstrate the process
1: Using a Variable as a Plot Title in ggplot2
Let’s first create a simple plot with ggplot2 and set the plot title using a variable.
R
# Load ggplot2
library(ggplot2)
# Create a sample data frame
df <- data.frame(
Category = c("A", "B", "C", "D"),
Value = c(4, 7, 9, 2)
)
# Assign the plot title to a variable
plot_title <- "Sample Bar Plot"
# Create a bar plot with ggplot2 using the title variable
ggplot(df, aes(x = Category, y = Value)) +
geom_bar(stat = "identity", fill = "skyblue") +
ggtitle(plot_title) # Using the variable as the plot title
Output:
Change Font Size of Plot Title When the Title Is a Variable in ggplot2 in R2: Changing Font Size of the Plot Title
To adjust the font size of the plot title in ggplot2, we use the theme() function combined with element_text(). The plot.title element allows us to customize various aspects of the title, including the font size.
theme(plot.title = element_text(size = font_size))
Here, font_size is the desired size of the plot title text.
R
# Plot with adjusted font size for the title
ggplot(df, aes(x = Category, y = Value)) +
geom_bar(stat = "identity", fill = "skyblue") +
ggtitle(plot_title) +
theme(plot.title = element_text(size = 20))
Output:
Change Font Size of Plot Title When the Title Is a Variable in ggplot2 in RYou can modify size = 20 to any other numeric value to adjust the font size accordingly.
3. Additional Customizations with element_text()
The element_text() function provides additional customization options for your plot title. Here’s a list of other properties you can control:
face: Font style, such as "bold", "italic", or "bold.italic"color: Font color (e.g., "red", "#FF5733")hjust: Horizontal justification (0 for left, 0.5 for center, 1 for right)vjust: Vertical justificationfamily: Font family (e.g., "serif", "sans", "mono")
R
# Plot with a customized title
ggplot(df, aes(x = Category, y = Value)) +
geom_bar(stat = "identity", fill = "skyblue") +
ggtitle(plot_title) +
theme(plot.title = element_text(size = 22, face = "bold", color = "darkblue",
hjust = 0.5, vjust = 1.2, family = "serif"))
Output:
Change Font Size of Plot Title When the Title Is a Variable in ggplot2 in Rsize = 22 changes the font sizeface = "bold" makes the title boldcolor = "darkblue" sets the font color to dark bluehjust = 0.5 centers the titlevjust = 1.2 moves the title slightly above the default positionfamily = "serif" sets the font family to "serif"
Conclusion
- You can set plot titles in
ggplot2 using variables, which is useful when creating dynamic or multiple plots. - To adjust the font size of a plot title, use
theme(plot.title = element_text(size = ...)). - Additional parameters such as
face, color, hjust, vjust, and family allow for further customization. - For more advanced styling, the
ggtext package provides even more flexibility.
By mastering these techniques, you can create professional, customized visualizations with ggplot2, ensuring that your plot titles are both informative and aesthetically pleasing, regardless of whether they're set directly or through variables.
Explore
Introduction
Fundamentals of R
Variables
Input/Output
Control Flow
Functions
Data Structures
Object Oriented Programming
Error Handling
File Handling