首页 > 解决方案 > 如何用日期轴注释折线图上的时间段?

问题描述

我希望创建一个显示多年来失业率的图表,然后在图的背景中添加条形图,突出显示衰退时期?

我会为此使用什么代码?我需要在代码中使用日期吗?

我试过的代码是

ggplot(unemployment_data, aes(x=year, y=unemployment))+
geom_line

但是,我不确定我是否如何使用 geom_rect() 以及这是否是正确的函数?同样,当我转到ggplot如上所述的情节时,由于某种原因 geom_line() 不起作用出现错误消息“geom_path:每个组仅包含一个观察值。您是否需要调整组审美” - 如何我要解决这个问题吗?

谢谢你的帮助。

数据

unemployment_data <- structure(list(year = c("1971 FEB", "1971 MAR", "1971 APR", "1971 MAY", "1971 JUN", "1971 JUL", "1971 AUG", "1971 SEP", "1971 OCT", "1971 NOV", "1971 DEC", "1972 JAN", "1972 FEB", "1972 MAR", "1972 APR", "1972 MAY", "1972 JUN", "1972 JUL", "1972 AUG", "1972 SEP"), unemployment = c(3.8, 3.9, 4, 4.1, 4.1, 4.2, 4.2, 4.3, 4.4, 4.4, 4.5, 4.5, 4.5, 4.5, 4.5, 4.4, 4.4, 4.3, 4.3, 4.2)), row.names = c(NA, -20L), class = c("tbl_df", "tbl", "data.frame"))

标签: rggplot2

解决方案


为什么不将图表相互叠加?您可以为每个数据集添加一个单独的 geom_bar,使用 alpha 表示透明度。前任;

p <- ggplot(NULL, aes(x, y)) + 
  geom_bar(aes(fill = "year1"), data = year1, alpha = 0.5) +
  geom_bar(aes(fill = "year2"), data = year2, alpha = 0.5)

这假设两个数据框(year1 和 year2)包含感兴趣的数据,但这应该显示您如何将其应用于您自己的数据。

我想这可能会变得一团糟。可能会更好用geom_bar(position="dodge"),我觉得它看起来更干净。


推荐阅读