繁体   English   中英

ggplot中的时间序列差异

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM