2017-08-08 3 views
6

tweenrで実行されたデータセットからプロットする年タイトルを追加しようとしています。私は、フレームのタイトルを使用します(ビット無意味)とgganimate機能にtitle_frame = TRUE(デフォルト)に設定することができますGIFを作成するにはrevolutionanalytics.comtweenrでgganimateを使用するときのプロットタイトル

library(tidyverse) 
library(tweenr) 
library(gapminder) 

gapminder_edit <- gapminder %>% 
    arrange(country, year) %>% 
    select(gdpPercap,lifeExp,year,country, continent, pop) %>% 
    rename(x=gdpPercap,y=lifeExp,time=year,id=country) %>% 
    mutate(ease="linear") 

gapminder_tween <- tween_elements(gapminder_edit, 
           "time", "id", "ease", nframes = 150) %>% 
    mutate(year = round(time), country = .group) %>% 
    left_join(gapminder, by=c("country","year","continent")) %>% 
    rename(population = pop.x) 

gapminder_tween %>% arrange(country, .frame) %>% head() 
#   x  y  time continent population .frame  .group year  country lifeExp pop.y gdpPercap 
# 1 779.4453 28.80100 1952.000  Asia 8425333  0 Afghanistan 1952 Afghanistan 28.801 8425333 779.4453 
# 2 781.7457 28.88606 1952.278  Asia 8470644  1 Afghanistan 1952 Afghanistan 28.801 8425333 779.4453 
# 3 784.0462 28.97111 1952.556  Asia 8515955  2 Afghanistan 1953 Afghanistan  NA  NA  NA 
# 4 786.3466 29.05617 1952.833  Asia 8561267  3 Afghanistan 1953 Afghanistan  NA  NA  NA 
# 5 788.6470 29.14122 1953.111  Asia 8606578  4 Afghanistan 1953 Afghanistan  NA  NA  NA 
# 6 790.9475 29.22628 1953.389  Asia 8651889  5 Afghanistan 1953 Afghanistan  NA  NA  NA 

..

library(gganimate) 
library(animation) 
p2 <- ggplot(gapminder_tween, 
      aes(x=x, y=y, frame = .frame)) + 
    geom_point(aes(size=population, color=continent),alpha=0.8) + 
    xlab("GDP per capita") + 
    ylab("Life expectancy at birth") + 
    scale_x_log10() 

magickPath <- shortPathName("C:\\Program Files\\ImageMagick-7.0.6-Q16\\magick.exe") 
gganimate(p2, ani.options = ani.options(convert=magickPath), interval = 0.1) 

enter image description here

からの例を以下の

年の列(マッピングの美学ではframe = year)を使用しようとしましたが、これは各フレームで56フレームとポイントを複数回表示します。

p2 <- ggplot(gapminder_tween, 
      aes(x=x, y=y, frame = year)) + 
    geom_point(aes(size=population, color=continent),alpha=0.8) + 
    xlab("GDP per capita") + 
    ylab("Life expectancy at birth") + 
    scale_x_log10() 

enter image description here

はI(もしそうなら、どのように)tween'edデータフレームにyearの対応する値に対応する各フレームのタイトルの最初のGIFを持つことができますか?

答えて

3

私は、ttl審美的にプロットタイトルをカスタマイズする機能を導入したgg_animateの機能を変更しました。
ファイルhereをダウンロードし、作業ディレクトリにmygg_animate.rの名前で保存します。得られたアニメーショングラフ(時系列をgifファイルの寸法を減少させるために切り捨てられた)以下

library(tidyverse) 
library(tweenr) 
library(gapminder) 

gapminder_edit <- gapminder %>% 
    arrange(country, year) %>% 
    select(gdpPercap,lifeExp,year,country, continent, pop) %>% 
    rename(x=gdpPercap,y=lifeExp,time=year,id=country) %>% 
    mutate(ease="linear") 

gapminder_tween <- tween_elements(gapminder_edit, 
           "time", "id", "ease", nframes = 200) %>% 
    mutate(year = round(time), country = .group) %>% 
    left_join(gapminder, by=c("country","year","continent")) %>% 
    rename(population = pop.x) 

library(gganimate) 
library(animation) 
source("mygg_animate.r") 

# Define plot titles using the new aesthetic 
p2 <- ggplot(gapminder_tween, 
      aes(x=x, y=y, frame=.frame, ttl=year)) + 
    geom_point(aes(size=population, color=continent),alpha=0.8) + 
    xlab("GDP per capita") + 
    ylab("Life expectancy at birth") + 
    scale_x_log10() 

magickPath <- shortPathName("C:\\Program Files\\ImageMagick-7.0.6-Q16\\magick.exe") 

mygg_animate(p2, ani.options = ani.options(convert=magickPath), 
    interval = 0.1, title_frame=T) 


次に、次のコードを実行します。

enter image description here

関連する問題