# Install packages
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# Load packages
library(ggplot2)
Interval Area Chart
Setup
System Requirements: Cross-platform (Linux/MacOS/Windows)
Programming language: R
Dependent packages:
ggplot2
Data Preparation
The case data consists of the highest and lowest temperatures for each of the twelve months in a year, along with the corresponding abbreviated month names. Based on the case data, temperature intervals and average temperature lines have been plotted for each month.
# Load data
<- read.delim("files/Hiplot/089-interval-area-chart-data.txt", header = T)
data
# Convert data structure
"month"]] <- factor(data[["month"]], levels = data[["month"]])
data[[
# View data
head(data)
month min_temperature max_temperature mean
1 Jan 15 20 16
2 Feb 17 25 20
3 Mar 20 26 23
4 Apr 25 30 27
5 May 30 35 32
6 Jun 32 35 34
Visualization
# Interval Area Chart
<- ggplot(data, aes(x = month, group = 1)) +
p geom_line(aes(y = max_temperature), size = 1.2, color = "#EA3323",
linetype = "solid") +
geom_line(aes(y = min_temperature), size = 1.2, color = "#0000F5",
linetype = "solid") +
geom_line(aes(x = month, y = mean), size = 1.2, color = "#BEBEBE",
linetype = "dashed") +
geom_ribbon(aes(ymin = min_temperature, ymax = max_temperature),
fill = "#F2F2F2", alpha = 0.5) +
geom_text(aes(x = month, y = max_temperature + 1, label = max_temperature),
color = "#EA3323", size = 2.5, vjust = -0.5, hjust = 0) +
geom_text(aes(x = month, y = min_temperature - 1, label = min_temperature),
color = "#0000F5", size = 2.5, vjust = 1.5, hjust = 0) +
geom_text(aes(x = month, y = mean, label = mean),
color = "#BEBEBE", size = 2.5, vjust = 1.5, hjust = 0) +
labs(title = "Temperature", x = "Month", y = "Temperature") +
scale_color_manual(values = c(max = "#EA3323", min = "#0000F5")) +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
p
