Consider the following data frame that contains the price of three european stock indices.
df <- as.data.frame(EuStockMarkets[, 1:3])
In order to create an area chart with a column of the input data frame you can pass the dates (if available) or an index to x and the variable of interest to y and then use geom_area.
# install.packages("ggplot2")
library(ggplot2)
# Area chart
ggplot(df, aes(x = seq_along(SMI), y = SMI)) +
geom_area()

Fill the area
By default the area will be filled with a very dark gray color. However, you can change it passing a color to the fill argument.
# install.packages("ggplot2")
library(ggplot2)
# Area chart
ggplot(df, aes(x = seq_along(SMI), y = SMI)) +
geom_area(fill = 4)

Transparency of the area
You can also change the transparency of the area with the alpha argument of the function.
# install.packages("ggplot2")
library(ggplot2)
# Area chart
ggplot(df, aes(x = seq_along(SMI), y = SMI)) +
geom_area(fill = 4,
alpha = 0.5)

Line customization
The upper line of the area can be customized with several arguments, such as color, lwd or linetype.
# install.packages("ggplot2")
library(ggplot2)
# Area chart
ggplot(df, aes(x = seq_along(SMI), y = SMI)) +
geom_area(fill = 4,
alpha = 0.5,
color = 1, # Line color
lwd = 0.5, # Line width
linetype = 1) # Line type


In case you want to add more variables you will need to specify the aesthetics inside each geom_area for each variable. Note that if the number of areas to add is more than two or three you should consider creating a stacked area chart.
# install.packages("ggplot2")
library(ggplot2)
# Area chart
ggplot(df) +
geom_area(aes(x = seq_along(SMI), y = SMI),
fill = 4, alpha = 0.85) +
geom_area(aes(x = seq_along(DAX), y = DAX),
fill = 3, alpha = 0.85)
See also