如何在 R 中制作动画,显示具有不同 bin 大小的直方图?
How can I make an animation in R showing a histogram with different bin sizes?
我想使用 gganimate()
但找不到可行的解决方案。
我最终成功创建了一些东西 - 使用 animation
包。我能够同时创建 GIF 和视频输出 - 但都没有我希望的那么流畅或好。
输出非常不稳定 - 如果我想使用基本 "hist" 函数显示 20 个不同的中断,动画只显示其中的大约一半。您可以看到 GIF 遍历了所有 # of bins,但图表不会针对每一步进行更新。
这是我的代码 GIF output。
library('ggplot2')
library('animation')
psd_1 <- data.frame(rnorm(5000, 100, 15))
colnames(psd_1)[1] <- "passengers"
ani.options(interval=.25, nmax=20)
a = saveGIF(
{
for (i in c(1:20)) {
hist(psd_1$passengers, breaks=i, main=paste("Histogram with ",i, " bins"),
xlab="Total Passengers")
}
}
, movie.name="wodies.gif")
正如我在评论中提到的,如果您将单个数字传递给 breaks=
,它并不能保证中断的次数,这只是一个建议。如果你想设置一个确切的数字,你需要传入一个中断向量。你可以做到
a = saveGIF(
{
for (i in c(1:20)) {
hist(psd_1$passengers,
breaks=seq(min(psd_1$passengers), max(psd_1$passengers), length.out=i),
main=paste("Histogram with ",i, " bins"),
xlab = "Total Passengers") }
}
, movie.name = "wodies.gif")
我想使用 gganimate()
但找不到可行的解决方案。
我最终成功创建了一些东西 - 使用 animation
包。我能够同时创建 GIF 和视频输出 - 但都没有我希望的那么流畅或好。
输出非常不稳定 - 如果我想使用基本 "hist" 函数显示 20 个不同的中断,动画只显示其中的大约一半。您可以看到 GIF 遍历了所有 # of bins,但图表不会针对每一步进行更新。
这是我的代码 GIF output。
library('ggplot2')
library('animation')
psd_1 <- data.frame(rnorm(5000, 100, 15))
colnames(psd_1)[1] <- "passengers"
ani.options(interval=.25, nmax=20)
a = saveGIF(
{
for (i in c(1:20)) {
hist(psd_1$passengers, breaks=i, main=paste("Histogram with ",i, " bins"),
xlab="Total Passengers")
}
}
, movie.name="wodies.gif")
正如我在评论中提到的,如果您将单个数字传递给 breaks=
,它并不能保证中断的次数,这只是一个建议。如果你想设置一个确切的数字,你需要传入一个中断向量。你可以做到
a = saveGIF(
{
for (i in c(1:20)) {
hist(psd_1$passengers,
breaks=seq(min(psd_1$passengers), max(psd_1$passengers), length.out=i),
main=paste("Histogram with ",i, " bins"),
xlab = "Total Passengers") }
}
, movie.name = "wodies.gif")