gganimateによる動くグラフの作成

code
Published

January 1, 2023

gganimateサンプル

gganimate

gganimateは、グラフ描写ライブラリであるggplot2をアニメーションに拡張したものです。ggplot2で書いたグラフに対して、transitionを追加する事で容易にアニメーションが作成できます。

ライブラリのインポート

Code
library(ggplot2)
library(gganimate)
library(gapminder)

利用データ

データはGapminderを利用します。

データのサンプル

Code
library(gapminder)

head(gapminder)
# A tibble: 6 × 6
  country     continent  year lifeExp      pop gdpPercap
  <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
1 Afghanistan Asia       1952    28.8  8425333      779.
2 Afghanistan Asia       1957    30.3  9240934      821.
3 Afghanistan Asia       1962    32.0 10267083      853.
4 Afghanistan Asia       1967    34.0 11537966      836.
5 Afghanistan Asia       1972    36.1 13079460      740.
6 Afghanistan Asia       1977    38.4 14880372      786.

列の意味

Code
names(gapminder)
[1] "country"   "continent" "year"      "lifeExp"   "pop"       "gdpPercap"
Demonstration of pipe table syntax
カラム名 意味
country 国名
continent 大陸名
year
lifeExp 平均寿命
pop 人口
gdpPercap 1人あたりGPD

ggplot2によるグラフ作成

Code
p <- ggplot(gapminder, aes(x = gdpPercap, y = lifeExp, size = pop, colour = country)) +
    geom_point(alpha = 0.7, show.legend = FALSE) +
    scale_size(range = c(2, 12)) +
    scale_x_log10() +
    facet_wrap(~continent) # 大陸ごとに比較

p

gganimateによるアニメーション作成

transitionを追加して、時間ごとの変化をアニメーションにします。年毎の推移を表すには、transition_timeに対して時間を示す列を指定します。

Code
p +
transition_time(year)

参考

A Grammar of Animated Graphics