R语言 gganimate::阴影标记():排除除第1层以外的所有层

6ljaweal  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(155)

我想使用shadow_mark()在图上只留下第一组原始数据来显示初始条件。

require(ggplot2)
require(gganimate)

table(airquality$Month)

ggplot(airquality, aes(Day, Temp)) +
  geom_line(aes(color = Month), size = 1) +
  transition_time(Month) +
  shadow_mark(colour = 'black', size = 0.75, exclude_layer = 6:9)

不幸的是,exclude_layer选项没有任何效果。是我做错了什么还是这是bug?我怀疑我可能没有正确理解“layer”。

yi0zb3m4

yi0zb3m41#

exclude_layers参数用于排除geom层,即在您的情况下,您有一个geom_line,因此只有一个层。
我不知道gganimate是否提供了一个选项来实现您想要的结果,但我对文档的阅读是,至少对于shadow_mark来说没有。
但一种解决方法是使用第二个geom_line添加“reference”行

library(ggplot2)
library(gganimate)

ggplot(airquality, aes(Day, Temp)) +
  geom_line(data = ~subset(.x, Month == min(Month), -Month), size = 1) +
  geom_line(aes(color = Month), size = 1) +
  transition_time(Month)
#> Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
#> ℹ Please use `linewidth` instead.

相关问题