## Classes 'tbl_df', 'tbl' and 'data.frame': 1704 obs. of 6 variables:
## $ country : Factor w/ 142 levels "Afghanistan",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ continent: Factor w/ 5 levels "Africa","Americas",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ year : int 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 ...
## $ lifeExp : num 28.8 30.3 32 34 36.1 ...
## $ pop : int 8425333 9240934 10267083 11537966 13079460 14880372 12881816 13867957 16317921 22227415 ...
## $ gdpPercap: num 779 821 853 836 740 ...
country | continent | year | lifeExp | pop | gdpPercap |
---|---|---|---|---|---|
Afghanistan | Asia | 1952 | 28.801 | 8425333 | 779.4453 |
Afghanistan | Asia | 1957 | 30.332 | 9240934 | 820.8530 |
Afghanistan | Asia | 1962 | 31.997 | 10267083 | 853.1007 |
Afghanistan | Asia | 1967 | 34.020 | 11537966 | 836.1971 |
Afghanistan | Asia | 1972 | 36.088 | 13079460 | 739.9811 |
Afghanistan | Asia | 1977 | 38.438 | 14880372 | 786.1134 |
意図が分からない
plot_by_year <- function(yr) {
p <- gapminder %>%
dplyr::filter(year == yr) %>%
ggplot(aes(x=gdpPercap, y=lifeExp,
size=pop / 1e+06, color=continent)) +
ggtitle(paste0(yr)) +
geom_point(alpha=.8) +
scale_x_log10(breaks=c(400, 1000, 4000, 10000, 40000, 100000)) +
ylim(c(20, 90)) +
scale_size_continuous(range=c(1, 13)) +
labs(x="GDP/capita",
y="Life expectancy (years)",
color="Continent",
size="Population (million)")
return(p)
}
plot_ls <- gapminder %>%
dplyr::distinct(year) %>%
dplyr::pull() %>%
map(., plot_by_year)
plot_ls[[1]]
ただし、ggplotは軸を自動調整して しまうので手動で調整が必要
画像を合成してgifなどに
devtools::install_github("dgrtwo/gganimate")
library(gganimate)
library(tweenr)
tw <- gapminder %>%
split(.$year) %>% ## list of dfs by year
tweenr::tween_states(tweenlength=5, statelength=0,
ease="cubic-in-out", nframes=200) %>%
dplyr::mutate(yr = floor(year))
## country continent year lifeExp pop gdpPercap .frame yr
## 1 Japan Asia 1952.000 63.03000 86459025 3216.956 1 1952
## 2 Japan Asia 1952.003 63.03144 86462002 3217.598 2 1952
## 3 Japan Asia 1952.023 63.04152 86482837 3222.092 3 1952
## 4 Japan Asia 1952.079 63.06889 86539391 3234.288 4 1952
## 5 Japan Asia 1952.187 63.12219 86649522 3258.039 5 1952
## 6 Japan Asia 1952.364 63.21006 86831090 3297.197 6 1952
anim <- ggplot(tw, aes(gdpPercap, lifeExp, size=pop / 1e+06,
color=continent, frame=.frame)) + ...
gganimate(anim, interval=.1, title_frame=FALSE,
filename="./tmp/gapminder.gif")
devtools::session_info()[[1]]
## setting value
## version R version 3.4.3 (2017-11-30)
## system x86_64, linux-gnu
## ui X11
## language ja
## collate ja_JP.UTF-8
## tz Japan
## date 2018-02-24
devtools::session_info()[[2]]
## package * version date source
## animation 2.5 2017-03-30 cran (@2.5)
## assertthat 0.2.0 2017-04-11 CRAN (R 3.4.3)
## backports 1.1.2 2017-12-13 CRAN (R 3.4.3)
## base * 3.4.3 2017-12-01 local
## base64enc 0.1-3 2015-07-28 CRAN (R 3.4.3)
## bindr 0.1 2016-11-13 CRAN (R 3.4.3)
## bindrcpp * 0.2 2017-06-17 CRAN (R 3.4.3)
## broom 0.4.3 2017-11-20 CRAN (R 3.4.3)
## cellranger 1.1.0 2016-07-27 CRAN (R 3.4.3)
## cli 1.0.0 2017-11-05 CRAN (R 3.4.3)
## codetools 0.2-15 2016-10-05 CRAN (R 3.3.1)
## colorspace 1.3-2 2016-12-14 cran (@1.3-2)
## compiler 3.4.3 2017-12-01 local
## crayon 1.3.4 2017-09-16 CRAN (R 3.4.3)
## datasets * 3.4.3 2017-12-01 local
## devtools 1.13.5 2018-02-18 CRAN (R 3.4.3)
## digest 0.6.15 2018-01-28 CRAN (R 3.4.3)
## dplyr * 0.7.4 2017-09-28 CRAN (R 3.4.3)
## evaluate 0.10.1 2017-06-24 CRAN (R 3.4.3)
## forcats * 0.3.0 2018-02-19 CRAN (R 3.4.3)
## foreign 0.8-69 2017-06-21 CRAN (R 3.4.0)
## gapminder * 0.3.0 2017-10-31 CRAN (R 3.4.3)
## gganimate * 0.1.0.9000 2018-02-23 Github (dgrtwo/gganimate@bf82002)
## ggplot2 * 2.2.1 2016-12-30 cran (@2.2.1)
## glue 1.2.0 2017-10-29 cran (@1.2.0)
## graphics * 3.4.3 2017-12-01 local
## grDevices * 3.4.3 2017-12-01 local
## grid 3.4.3 2017-12-01 local
## gtable 0.2.0 2016-02-26 cran (@0.2.0)
## haven 1.1.1 2018-01-18 CRAN (R 3.4.3)
## hms 0.4.1 2018-01-24 CRAN (R 3.4.3)
## htmltools 0.3.6 2017-04-28 CRAN (R 3.4.3)
## httr 1.3.1 2017-08-20 CRAN (R 3.4.3)
## jsonlite 1.5 2017-06-01 CRAN (R 3.4.3)
## knitr 1.19 2018-01-29 CRAN (R 3.4.3)
## labeling 0.3 2014-08-23 cran (@0.3)
## lattice 0.20-35 2017-03-25 CRAN (R 3.3.3)
## lazyeval 0.2.1 2017-10-29 cran (@0.2.1)
## lubridate 1.7.2 2018-02-06 CRAN (R 3.4.3)
## magrittr 1.5 2014-11-22 CRAN (R 3.4.3)
## memoise 1.1.0 2017-04-21 CRAN (R 3.4.3)
## methods * 3.4.3 2017-12-01 local
## mnormt 1.5-5 2016-10-15 CRAN (R 3.4.3)
## modelr 0.1.1 2017-07-24 CRAN (R 3.4.3)
## munsell 0.4.3 2016-02-13 cran (@0.4.3)
## nlme 3.1-131 2017-02-06 CRAN (R 3.4.0)
## packrat 0.4.8-1 2016-09-07 CRAN (R 3.4.3)
## parallel 3.4.3 2017-12-01 local
## pillar 1.1.0 2018-01-14 CRAN (R 3.4.3)
## pkgconfig 2.0.1 2017-03-21 CRAN (R 3.4.3)
## plyr 1.8.4 2016-06-08 cran (@1.8.4)
## psych 1.7.8 2017-09-09 CRAN (R 3.4.3)
## purrr * 0.2.4 2017-10-18 CRAN (R 3.4.3)
## R6 2.2.2 2017-06-17 CRAN (R 3.4.3)
## Rcpp 0.12.15 2018-01-20 CRAN (R 3.4.3)
## readr * 1.1.1 2017-05-16 CRAN (R 3.4.3)
## readxl 1.0.0 2017-04-18 CRAN (R 3.4.3)
## reshape2 1.4.3 2017-12-11 cran (@1.4.3)
## revealjs 0.9 2017-03-13 CRAN (R 3.4.3)
## rlang 0.2.0 2018-02-20 CRAN (R 3.4.3)
## rmarkdown 1.8 2017-11-17 CRAN (R 3.4.3)
## rprojroot 1.3-2 2018-01-03 CRAN (R 3.4.3)
## rstudioapi 0.7 2017-09-07 CRAN (R 3.4.3)
## rvest 0.3.2 2016-06-17 CRAN (R 3.4.3)
## scales 0.5.0 2017-08-24 cran (@0.5.0)
## stats * 3.4.3 2017-12-01 local
## stringi 1.1.6 2017-11-17 CRAN (R 3.4.3)
## stringr * 1.3.0 2018-02-19 cran (@1.3.0)
## tibble * 1.4.2 2018-01-22 CRAN (R 3.4.3)
## tidyr * 0.8.0 2018-01-29 CRAN (R 3.4.3)
## tidyverse * 1.2.1 2017-11-14 CRAN (R 3.4.3)
## tools 3.4.3 2017-12-01 local
## tweenr * 0.1.5 2016-10-10 CRAN (R 3.4.3)
## utils * 3.4.3 2017-12-01 local
## withr 2.1.1 2017-12-19 CRAN (R 3.4.3)
## xml2 1.2.0 2018-01-24 CRAN (R 3.4.3)
## yaml 2.1.16 2017-12-12 CRAN (R 3.4.3)