Chapter 14 Themes
14.1 Introduction
In this final chapter, we will learn to modify the appearance of all non data components of the plot such as:
- axis
- legend
- panel
- plot area
- background
- margin
- facets
14.2 Basic Plot
We will continue with the scatter plot examining the relationship between displacement and miles per gallon from the the mtcars data set.
<- ggplot(mtcars) +
p geom_point(aes(disp, mpg))
p
14.3 Axis
14.3.1 Text
The axis.title.x
argument can be used to modify the appearance of the X
axis. In the below example, we modify the color and size of the title using
the element_text()
function. Remember, whenever you are trying to modify the
appearance of a theme element which is a text, you must use element_text()
.
You can use axis.title.y
to modify the Y
axis title and to modify the
title of both the axis together, use axis.title
.
+ theme(axis.title.x = element_text(color = "red", size = 10, face = "italic")) p
14.3.2 Ticks
To modify the appearance of the axis ticks, use the axis.ticks
argument. You can
change the color, size, linetype and length of the ticks using the element_line()
function as shown below.
+ theme(axis.ticks = element_line(color = 'blue', size = 1.25, linetype = 2),
p axis.ticks.length = unit(1, "cm"))
14.3.3 Line
The axis.line
argument should be used to modify the appearance of the
axis lines. You can change the color, size and linetype of the line using
the element_line()
function.
+ theme(axis.line = element_line(color = 'red', size = 1.5, linetype = 3)) p
14.4 Legend
Now, let us look at modifying the non-data components of a legend.
<- ggplot(mtcars) +
p geom_point(aes(disp, mpg, color = factor(cyl), shape = factor(gear)))
p
14.4.1 Background
The background of the legend can be modified using the legend.background
argument. You can change the background color, the border color and line type
using element_rect()
.
+ theme(legend.background = element_rect(fill = 'gray', linetype = 3,
p color = "black"))
14.4.2 Text
The appearance of the text can be modified using the legend.text
argument.
You can change the color, size and font using the element_text()
function.
+ theme(legend.text = element_text(color = 'green', face = 'italic')) p
14.4.3 Title
The appearance fo the title of the legend can be modified using the
legend.title
argument. You can change the color, size, font and alignment
using element_text()
.
+ theme(legend.title = element_text(color = 'blue', face = 'bold'),
p legend.title.align = 0.1)
14.4.4 Position
The position and direction of the legend can be changed using:
legend.position
- and
legend.direction
+ theme(legend.position = "top", legend.direction = "horizontal") p
14.5 Themes
14.5.1 Classic Dark on Light
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_bw()
14.5.2 Default Gray
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_gray()
14.5.3 Light
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_light()
14.5.4 Minimal
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_minimal()
14.5.5 Dark
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_dark()
14.5.6 Classic
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_classic()
14.5.7 Void (Empty)
ggplot(mtcars) +
geom_point(aes(disp, mpg)) +
theme_void()