【发布时间】:2021-03-26 14:24:54
【问题描述】:
使用 R 编程语言,我创建了一些时间序列数据(每日测量,超过 20 年)。我在每个月的时间段汇总了这些数据,然后生成了一个图表:
library(ggplot2)
library(xts)
library(scales)
set.seed(123)
day = seq(as.Date("2000/1/1"), as.Date("2020/1/1"),by="day")
day <- format(as.Date(day), "%Y/%m/%d")
amount <- rnorm(7306 ,100,10)
data <- data.frame(day, amount)
y.mon<-aggregate(amount~format(as.Date(day),
format="%Y/%m"),data=data, FUN=sum)
y.mon$d = y.mon$`format(as.Date(day), format = "%Y/%m")`
ggplot(y.mon, aes(x = d, y=amount))+
geom_line(aes(group=1))
-
现在,x 轴完全不可读。有没有办法“整理”x轴?也许“倾斜”日期或每隔 4 个月显示日期?我可以完全删除 x 轴,但理想情况下我想保留它以供参考。
-
在图表的末端,有一个巨大的向下“尖峰”。我认为这是因为数据每个月都会汇总 - 并且由于数据可用的最后一天是“2020 年 1 月 1 日”,这会导致“向下峰值”。是否可以“查询”“y.mon”对象,以便仅在最后一个“完成”时间段之前制作图表?这个“尖峰”是骗人的,有人可能会看到图表并认为 2020 年 1 月发生了大异常,但实际上是因为此时只有 1 个测量值。
谢谢
【问题讨论】:
-
看来
d是一个离散变量。保留as.Date()并在+ scale_x_date(date_labels = ...)中更改格式 -
你的意思是:y.mon$d =as.Date (y.mon$d) 吗?
-
我之前试过这个并得到以下结果: y.mon$d =as.Date(y.mon$d) charToDate(x) 中的错误:字符串不是标准的明确格式
标签: r ggplot2 time-series aggregate data-visualization