【问题标题】:R- Time series plot with eventsR- 带有事件的时间序列图
【发布时间】:2021-04-07 08:54:51
【问题描述】:

我有这个示例数据集(在我的真实数据集中有 355 个观察值)

PRDATE 是事件的日期 EVENTS 是事件的文本 COUNT 是该日期接受 COVID 检测的人数。

      PRDATE = c("2020-04-20", "2020-28-06","2020-12-07","2020-01-08", "2020-16-09") 
      EVENTS = c("Universities start", "School Summer holidays start", "textexample1", "textexample2", "textexample3")  
      COUNTS = c(378128, 61261, 26712, 1278, 1276)  
      df = data.frame(PRDATE, EVENTS, COUNTS)  

【问题讨论】:

  • 要给出一个有意义的答案,您应该分享您想要绘制的数据以及您用于绘制图表的内容?
  • 我编辑了我的帖子并制作了一个示例数据框。请记住,我的真实数据集有 355 种不同的组合,有些日期没有 EVENT 但仍应出现在图上。仅当事件发生时才应出现一行。说得通?我是 R 新手,但我想我会使用 GGPLOT
  • 您的数据共享返回错误Error in data.frame(PRDATE, EVENTS, COUNTS) : arguments imply differing number of rows: 5, 4
  • 我现在修复了数据框

标签: r plot time-series


【解决方案1】:

试试这个:

library(ggplot2)
#Code
ggplot(df,aes(x=PRDATE,y=COUNT,group=1))+
  geom_line()+
  geom_segment(aes(x=PRDATE, xend=PRDATE,y=0, yend=COUNT),lty=2)+
  geom_text(aes(label=EVENTS),angle=45,vjust=-0.5)+
  scale_y_continuous(limits=c(NA,100000))

输出:

【讨论】:

  • 当我这样做时,日期不会显示为 x 轴上的日期,而是显示为 2020、2040、2060、2080.. 我不知道为什么?
  • @hansgans 你必须格式化你的 x 轴添加 scale_x_date(date_breaks = '1 month',date_labels = '%Y-%m') 让我知道这是怎么回事!
猜你喜欢
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
相关资源
最近更新 更多