gpt4 book ai didi

r - 如何通过重新绘制图形来制作简单的 "animation"

转载 作者:行者123 更新时间:2023-12-04 01:17:57 25 4
gpt4 key购买 nike

下面的代码生成了在 R studio 中几乎像动画一样的内容,因为它渲染了 100 个绘图,每个绘图的数据都比之前的绘图略多。

################################################################################
# Visualise probability of heads tending towards 0.5 as more tests performed

# Number of tests to run
tests <- 100

# duration to run for in seconds
durationSeconds <- 10

ht <- sample(c('heads', 'tails'), tests, replace=TRUE)
total <- vector()
for (i in 1:tests) {
headsAtI <- length(which(ht[1:i] == 'heads'))
total[i] <- headsAtI/i
Sys.sleep(durationSeconds/tests)
plot(total, type='l')
abline(h = 0.5, col='blue')
}

这有效但有一些严重的问题:

  1. 创建了 100 个地 block ,我想理想情况下应该创建并重新使用一个地 block
  2. 如果我将“测试”的值更改为 10,000,R Studio 将挂起或崩溃

在 R Studio 中执行此操作的正确方法是什么?

我意识到我可以在最后绘制一个图,包含所有“结果”,但我想实现“动画”效果。

enter image description here

最佳答案

你考虑过 gganimate 吗?

library(dplyr)
library(gganimate)
library(ggplot2)

tests <- 100
ht <- sample(c('heads', 'tails'), tests, replace=TRUE)

p <- data.frame(ht) %>%
mutate(headsAtI = cumsum(ht == 'heads'),
index = row_number(),
total = headsAtI/index) %>%
ggplot() + aes(index, total) + geom_line() +
geom_hline(yintercept = 0.5, color = 'blue') +
transition_reveal(index)
p

enter image description here

关于r - 如何通过重新绘制图形来制作简单的 "animation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63027033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com