如何用R语言ggplot绘制日期间储水量变化柱状图
解决ggplot绘制储水量变化柱状图的X轴设置问题
1. 数据预处理:计算差值与生成区间标签
基于你的储水量数据框,先转换日期格式,再计算连续日期间的储水量差值,同时生成用于X轴的日期区间标签(如"2022-07-20至2022-07-22")——这是匹配参考图样式的核心步骤。
假设你的数据框名为water_data,执行以下代码:
library(tidyverse) # 转换日期格式、计算储水量变化值、生成日期区间标签 water_diff <- water_data %>% mutate(Date = ymd(Date)) %>% arrange(Date) %>% mutate( water_change = lead(`Water stock (Liters/m²)`) - `Water stock (Liters/m²)`, date_interval = paste(Date, lead(Date), sep = " 至 ") ) %>% drop_na(water_change, date_interval) # 移除无后续匹配日期的最后一行数据
2. 绘制目标样式的柱状图
直接用生成的date_interval作为X轴变量,即可实现参考图的区间标签效果:
ggplot(water_diff, aes(x = date_interval, y = water_change)) + geom_col(fill = "#2c7fb8") + # 可根据需求自定义填充颜色 labs( x = "日期区间", y = "储水量变化(升/平方米)", title = "连续日期间储水量变化" ) + theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转X轴标签避免重叠
关键提示
- 若需要更简洁的区间格式(如"2022-07-20~2022-07-22"),仅需修改
paste函数的分隔符参数即可。 - 若储水量变化有正负值,可通过
fill = ifelse(water_change > 0, "green", "red")实现正负值分色展示。
内容的提问来源于stack exchange,提问作者Oliver Claessens
相关产品推荐
相关产品推荐

