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