R GG为频率直方图设置动画,以显示每个附加采样后的变化
我有以下数据集,代表人口的重复样本和随后的样本平均数:R GG为频率直方图设置动画,以显示每个附加采样后的变化,r,ggplot2,histogram,gganimate,R,Ggplot2,Histogram,Gganimate,我有以下数据集,代表人口的重复样本和随后的样本平均数: data.frame(sample = 1:50, mu = rnorm(n = 50, mean = 0, sd = 1)) 我使用以下代码在ggplot中制作了一个频率直方图: data.frame(sample = 1:50, mu = rnorm(n = 50, mean = 0, sd = 1)) %>% ggplot(data = ., aes(mu)) + geom_histogram() 我正在尝试使用gga
data.frame(sample = 1:50, mu = rnorm(n = 50, mean = 0, sd = 1))
我使用以下代码在ggplot中制作了一个频率直方图:
data.frame(sample = 1:50, mu = rnorm(n = 50, mean = 0, sd = 1)) %>%
ggplot(data = ., aes(mu)) +
geom_histogram()
我正在尝试使用gganimate
为这个直方图设置动画,其中每个额外的样本都会更改绘图中平均值的频率分布。然而,我不知道该怎么做
我尝试过这一点,但结果并不理想:
data.frame(sample = 1:50, mu = rnorm(n = 50, mean = 0, sd = 1)) %>%
ggplot(data = ., aes(x = mu)) +
geom_histogram() +
transition_time(sample) +
ease_aes("linear") +
enter_fade() +
exit_fade()
任何协助都将不胜感激 如果我没弄错的话,您希望直方图随着时间的推移逐渐增大,并在每个步骤中添加一个新样本。如果taht是您想要的,可以这样实现: 基本思想是按样本分割,然后将样本累积到帧中,即在帧1中仅显示样本1,在帧2中显示样本1和2
库(gganimate)
#>Lade nötiges Paket:ggplot2
图书馆(GG2)
图书馆(dplyr)
图书馆(purrr)
种子(42)
#示例数据
df%
累计(~bind_行(.x,.y))%>%
绑定行(.id=“frame”)%>%
变异(frame=as.integer(frame))
头部(df_ani)
#>帧样本mu
#> 1 1 1 1.3709584
#> 2 2 1 1.3709584
#> 3 2 2 -0.5646982
#> 4 3 1 1.3709584
#> 5 3 2 -0.5646982
#> 6 3 3 0.3631284
p_gg`stat_bin()`使用`bin=30`。使用“binwidth”选择更好的值。
p_anim谢谢你!这似乎很有效。然而,它似乎随着样本量的增加而崩溃。例如,如果我们将样本大小从50增加到5000,则动画图表的整体形状与常规ggplot相同,但频率计数大幅膨胀?嗨。对你是对的。这不是我们想要的。我的方法的问题是,直方图是为膨胀的数据集计算的,在膨胀的数据集中,每增加一帧都会复制样本。因此,频率被放大,即对于50个样本大小,样本1在最终帧中计数50次,而样本50仅计数一次。目前我对这个问题没有简单的解决办法。但是我会考虑的。嗨。环顾四周之后。简单的解决方案是切换到transition\u manual
。我编辑了我的代码,将样本大小增加到500,并为未膨胀的df添加ggplot进行比较。