[英]Time series difference in ggplot
我正在尝试 plot 时间序列与 ggplot 的(第一)差异。 由于差异(根据定义)包含比数据少一个元素,我(可以预见地)收到错误消息:“错误:美学必须是长度 1 或与数据相同”。
我通过将我的 y 审美定义为c(NA, diff(data))
而不仅仅是diff(data)
来解决这个问题,这很有效。 但是,这感觉像是一个笨拙的解决方法,并且仅在它给我带来麻烦的情况下才有效,例如当我尝试处理多个情节时。 (此外,如果需要更高阶的差异或更多滞后,则需要继续添加 NA)。
有人知道更强大的解决方案吗?
最终的问题是:我想要什么(这是使用拼凑而成的::)我使用 faceting 得到什么(注意:如果我把 NA 放在最后,这是第三张图表正确)
虽然将 NA 添加到差分向量并不笨拙,但在 ggplot 美学中这样做是。 比较以下两段代码:
ggplot(data = data.long, aes(x = date, y = c(NA, count %>% diff()))) +
geom_point()
data.long %>%
mutate(diff_count = c(NA, diff(count))) %>%
ggplot(aes(x = date, y = diff_count)) +
geom_point()
它们都会给出相同的图表,但第二个代码是首选方法,因为用于绘图的数据(差异计数)是在发送到 ggplot 之前计算的,并且更易于阅读和修改。 换句话说,先做数据管理,再可视化数据。 正如您所说,使用第一种方法可能会在以后给您带来麻烦,例如进行更复杂的图形绘制,例如刻面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.