首页 > 解决方案 > 如何在 gganimate 中为背景设置 alpha 参数

问题描述

我尝试在动画中为背景设置 alpha 参数 0.1:

library(tidyverse)
library(gganimate)

mtcars_ <- rename(mtcars, mpg_ = mpg, disp_ = disp)
mtcars_$mpg = min(mtcars$mpg)
gg <- ggplot(mtcars, aes(x = mpg, y = disp)) + geom_density_2d_filled(data = mtcars_, aes(x = mpg_, y = disp_), alpha = 0.1) + geom_line() + theme(legend.position = "none")
gg
anim <- gg + transition_reveal(mpg) + shadow_wake(1)
anim

但最终电影中的 alpha 为 1。如何解决?

我需要这张图片的电影 在此处输入图像描述

标签: rgganimate

解决方案


您可能只想删除shadow_wake()或将其 wake_length 设置为更接近 0。视觉结果将相似,但 shadow_wake() 选项的计算时间会更长。

gg1 <- ggplot(mtcars, aes(x = mpg, y = disp)) + 
  geom_density_2d_filled(data = mtcars_, aes(x = mpg_, y = disp_), alpha = 0.2) + geom_line() + 
  theme(legend.position = "none",
        panel.background = element_blank())

gg1 + transition_reveal(mpg)

shadow_wake() 已移除

在此处输入图像描述

或者将 shadow_wake 设置为较低的设置。

gg2 <- 
  ggplot(data = mtcars, aes(x = mpg, y = disp)) + 
  geom_density_2d_filled(data = mtcars_ , aes(x = mpg_, y = disp_), alpha = 0.2) + 
  geom_line() + 
  theme(legend.position = "none",
        panel.background = element_blank())

 gg2 + transition_reveal(mpg) + shadow_wake(wake_length = 0.05)

shadow_wake() 降低

在此处输入图像描述


推荐阅读