如何在 RStudio 中打开动画图 (gif/mp4)?

How to open animated plots (gif/mp4) in RStudio?

我在受限的研究环境(Windows 10 VM 进行了一些修改)中使用带有 {gganimate} 软件包的 RStudio 在 .gif 和 [=14] 中创建动画图=] 格式 - 当它们在 RStudio 中呈现时,它们显示正常,但如果我使用 anim_save() 保存文件,我无法在提供的 Windows 图像查看器或网络浏览器(或.mp4) 的媒体播放器 - 它总是说文件已损坏或无法显示。

将这些文件从受限环境中导出需要一个漫长的过程,所以我想检查一下它们是否真的损坏了,或者只是因为某种原因无法在这个特定的 OS 中显示. RStudio 可以 open/display .gif 文件或视频吗?注意:我知道如何使用 print()/plot() 方法显示动画 - 这是关于 opening/displaying 导出后的外部动画文件。

生成动画图并另存为.gif/.mp4的示例代码如下:

library(ggplot2)
library(gganimate)  # package {av} also required to save as mp4

animated_plot <- 
  ggplot(mtcars, aes(x = wt, y = hp, colour = as.factor(cyl))) +
  geom_point() +
  transition_states(cyl, transition_length = 3, state_length = 1) +
  enter_fade() +
  exit_fade() +
  labs(title = "Cyl: {closest_state}")

## save as gif
anim_save(
  filename = "animation.gif", 
  animation = animate(animated_plot)
  )

## save as mp4
anim_save(
  filename = "animation.mp4", 
  animation = animate(animated_plot, 
                      renderer = av_renderer())
)

(我的备份计划是使用 file_renderer() 将单个帧导出为图像并稍后将它们制成动画,例如

我稍微修改了你的代码,现在可以正常使用了。

library(ggplot2)
library(gganimate)  # package {av} also required to save as mp4

animated_plot <- 
    ggplot(mtcars, aes(x = wt, y = hp, colour = as.factor(cyl))) +
    geom_point() +
    transition_states(cyl, transition_length = 3, state_length = 1) +
    enter_fade() +
    exit_fade() +
    labs(title = "Cyl: {closest_state}")

## save as gif
animation = animate(animated_plot)
anim_save(
    filename = "animation.gif")
        
## save as mp4
animation1 = animate(animated_plot, 
                    renderer = av_renderer())
anim_save(
    filename = "animation.mp4")

animation1 #to display a video in the RStudio's viewer
animation  #to display a gif in the RStudio's viewer

例子:


加一个:

如果需要,您可以在内部 RStudio 浏览器中打开 gif 或 mp4:

制作一个简单的 Rmarkdown 文件并编织到 html:

---
title: "Untitled"
output:
  html_document
---

<img src="animation.gif"/>

<video controls autoplay>
   <source src="animation.mp4" type="video/mp4">
</video>

又加了一个。

你应该安装 library(rstudioapi)

看完这个link: https://rstudio.github.io/rstudioapi/reference/viewer.html

制作一个带有 img / video 标签的简单 html 文件,例如animation.html 并通过查看器打开:

<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
<title>blah</title>
</head>
<body>
  
<img src="animation.gif"/>

<video controls autoplay>
   <source src="animation.mp4" type="video/mp4">
   
</video>
</body>
</html>
rstudioapi::viewer("animation.html")

后备 :) library(ricomisc) 使用命令:rstudio_viewer("xxx.html")

祝你好运;)