我有一个时间序列数据,我想使用ggplot
使用geom_line
进行视觉判断.我想看看这条线的线段是根据所显示的 colored颜色 (例如,红色表示减少,绿色表示增加)相对于前一时间段增加或减少的,类似于问题here.
作为第二步,我只想在趋势发生变化的情况下才给数字加一分.
例如,使用名为economics
的内部R数据集,我可以这样准备数据:
library(tidyverse)
t <- economics %>%
filter(date >= "2013-09-01") %>%
mutate(pct_change = (uempmed/lag(uempmed) - 1) * 100 ,
line_color = pct_change < 0)
百分比变化给出:
[1] NA -1.2121212 4.9079755 1.1695906 -10.9826590 3.2467532 -0.6289308 -0.6329114
[9] -7.0063694 -5.4794521 -5.0724638 -1.5267176 3.8759690 1.4925373 -4.4117647 -0.7692308
[17] 2.3255814 -2.2727273 -6.9767442 -4.1666667
我试过用这个:
ggplot(data = na.omit(t) , aes(x = date, y = uempmed)) +
geom_line(aes(group = 1 ,color = line_color )) +
geom_point(shape = 1 )
但它没有给我我在寻找的东西:
colored颜色 不对,到处都是点.
我的问题有两个部分;
- 我如何编写代码,使表示uempmed的线在增加时显示为绿色,在减少时显示为红色,
- 仅当UEMPMED从增加切换到减少时才加
geom_point
,反之亦然
我很感激你的帮助.
为清晰起见进行编辑