Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在gganimate中为背景设置alpha参数_R_Gganimate - Fatal编程技术网

R 如何在gganimate中为背景设置alpha参数

R 如何在gganimate中为背景设置alpha参数,r,gganimate,R,Gganimate,我尝试在动画中为背景设置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_,

我尝试在动画中为背景设置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
库(tidyverse)
库(gganimate)

mtcars\up>您可能只想删除
阴影\u wake()
或将其wake\u长度设置为接近0。可视化结果将类似,但shadow_wake()选项的计算时间将更高


gg1您可能只想删除
阴影_wake()
或将其wake_长度设置为接近0。可视化结果将类似,但shadow_wake()选项的计算时间将更高


gg1一种方法是复制每个帧所需的数据。geom_density应该可以看到每一帧中的所有内容,但是geom_line应该只“看到”当前显示值之前的值。我们可以使用
tidyr::uncount
复制数据,然后为
geom_line
创建一个变量,当当前帧的值过高时,该变量为NA

library(tidyverse)
library(gganimate)

distinct_mpg <- mtcars %>% distinct(mpg) %>% arrange(mpg) %>% pull(mpg)
  
mtcars_frames <- mtcars %>%
  uncount(length(distinct_mpg), .id = "frame") %>%
  mutate(mpg_reveal = distinct_mpg[frame],
         mpg_shown = if_else(mpg <= mpg_reveal, mpg, NA_real_)) 

animate(
  ggplot(mtcars_frames, aes(y = disp)) +
    geom_density_2d_filled(aes(x = mpg), alpha = 0.1) + 
    geom_line(aes(x = mpg_shown, group = frame)) +
    transition_states(frame) +
    scale_fill_viridis_d(guide = NULL),
  fps = 20
)
库(tidyverse)
库(gganimate)
不同的\u mpg%不同的(mpg)%%>%arrange(mpg)%%>%pull(mpg)
MTU帧%
未计数(长度(不连续的)..id=“帧”)%>%
变异(mpg\u揭示=不同的mpg[frame],

mpg_show=if_else(mpg一种方法是复制每个帧所需的数据。geom_density应该可以看到每个帧中的所有内容,但geom_line应该只“看到”将值设置为当前显示的值。我们可以使用
tidyr::uncount
复制数据,然后为
geom_line
创建一个变量,当当前帧的值过高时,该变量为NA

library(tidyverse)
library(gganimate)

distinct_mpg <- mtcars %>% distinct(mpg) %>% arrange(mpg) %>% pull(mpg)
  
mtcars_frames <- mtcars %>%
  uncount(length(distinct_mpg), .id = "frame") %>%
  mutate(mpg_reveal = distinct_mpg[frame],
         mpg_shown = if_else(mpg <= mpg_reveal, mpg, NA_real_)) 

animate(
  ggplot(mtcars_frames, aes(y = disp)) +
    geom_density_2d_filled(aes(x = mpg), alpha = 0.1) + 
    geom_line(aes(x = mpg_shown, group = frame)) +
    transition_states(frame) +
    scale_fill_viridis_d(guide = NULL),
  fps = 20
)
库(tidyverse)
库(gganimate)
不同的\u mpg%不同的(mpg)%%>%arrange(mpg)%%>%pull(mpg)
MTU帧%
未计数(长度(不连续的)..id=“帧”)%>%
变异(mpg\u揭示=不同的mpg[frame],

mpg_show=if_else(mpg您希望面板的背景是透明的吗?因为您的代码将透明度指定给geom_density_2d_filled()geoms.是的,我想要与我的
gg
绘图一样的透明背景您想要面板的背景是透明的吗?因为您的代码将透明度指定给geom_density_2d_filled()geoms.是的,我想要透明背景,就像我的
gg
绘图一样。它不起作用。你的背景alpha为1。我需要0.1帮助我理解一件事。面板边框在之前(或“下方”)绘制几何图形。因此,它不能隐藏或覆盖任何几何图形。为什么您需要使其透明?是否将此图形放在另一个图形上?我已更新了我的问题并上载了所需的背景。它不起作用。您的背景alpha为1。我需要0.1帮助我了解一件事。面板边框在之前绘制(或“下方”)几何图形。因此,它不能隐藏或覆盖任何几何图形。为什么您需要使其透明?是否将此图形置于另一个图形之上?我已更新了我的问题并上传了所需的背景
library(tidyverse)
library(gganimate)

distinct_mpg <- mtcars %>% distinct(mpg) %>% arrange(mpg) %>% pull(mpg)
  
mtcars_frames <- mtcars %>%
  uncount(length(distinct_mpg), .id = "frame") %>%
  mutate(mpg_reveal = distinct_mpg[frame],
         mpg_shown = if_else(mpg <= mpg_reveal, mpg, NA_real_)) 

animate(
  ggplot(mtcars_frames, aes(y = disp)) +
    geom_density_2d_filled(aes(x = mpg), alpha = 0.1) + 
    geom_line(aes(x = mpg_shown, group = frame)) +
    transition_states(frame) +
    scale_fill_viridis_d(guide = NULL),
  fps = 20
)