# 安装包
if (!requireNamespace("ggplot2", quietly = TRUE)) {
install.packages("ggplot2")
}
# 加载包
library(ggplot2)
区间区域图
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
ggplot2
数据准备
案例数据为一年十二个月份的最高和最低温度和对应的月份简称。通过案例数据绘制了每个月份的温度区间及温度均线。
# 加载数据
<- read.delim("files/Hiplot/089-interval-area-chart-data.txt", header = T)
data
# 整理数据格式
"month"]] <- factor(data[["month"]], levels = data[["month"]])
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
可视化
# 区间区域图
<- 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
