Closed trevorld closed 1 year ago
{gganimate}
{ggplot2}
{vctrs}
library("ggplot2") library(ggpattern) library(gganimate) df1 <- data.frame(time = 1, offset = 0 , trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2), stringsAsFactors = FALSE) df2 <- data.frame(time = 2, offset = 0.045, trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2), stringsAsFactors = FALSE) df <- rbind(df1, df2) # Plot the two different states and transition between them. p <- ggplot(df, aes(trt, outcome)) + geom_col_pattern( aes( pattern_fill = trt, pattern_xoffset = I(offset), pattern_yoffset = I(-offset) ), colour = 'black', fill = 'white', pattern_density = 0.5, pattern_angle = 45 ) + theme_bw() + labs(title = "ggpattern + gganimate") + theme(legend.position = 'none') + coord_fixed(ratio = 1/2) plot(p)
p <- p + transition_states(time, transition_length = 2, state_length = 0, wrap = FALSE) animate(p, nframes = 60, fps = 20)
Error in `vec_rbind()`: ! Can't combine `..1$pattern_xoffset` <double> and `..2$pattern_xoffset` <character>. Run `rlang::last_error()` to see where the error occurred. Enter a frame number, or 0 to exit 1: animate(p, nframes = 60, fps = 20) 2: animate.gganim(p, nframes = 60, fps = 20) 3: prerender(plot, nframes_total) 4: ggplot_build(plot) 5: ggplot_build.gganim(plot) 6: scene$after_defaults(data) 7: after_defaults(..., self = self) 8: self$transition$expand_data(layer_data[tween_last], self$layer_type[tween_l 9: expand_data(..., self = self) 10: Map(function(data, type, id, match, ease, enter, exit, layer_index) { se 11: mapply(FUN = f, ..., SIMPLIFY = FALSE) 12: (function (data, type, id, match, ease, enter, exit, layer_index) { self 13: self$expand_layer(data, type, id, match, ease, enter, exit, params, layer_i 14: expand_layer(..., self = self) 15: lapply(split(data, data$PANEL), function(data) { self$expand_panel(data, 16: FUN(X[[i]], ...) 17: self$expand_panel(data, type, id, match, ease, enter, exit, params, layer_i 18: expand_panel(..., self = self) 19: tween_state(all_frames, next_state, ease, params$transition_length[i], !!id 20: vec_rbind(if (nframes > 1) vec_cbind(from, .frame = rep(1, nrow(from))) els 21: (function () vec_default_ptype2(x = x, y = y, x_arg = x_arg, y_arg = y_arg, 22: vec_default_ptype2(x = x, y = y, x_arg = x_arg, y_arg = y_arg, call = call, 23: vec_ptype2_asis_left(x, y, x_arg = x_arg, y_arg = y_arg, call = call) 24: vec_ptype2_asis(x, y, ...) 25: vec_ptype2(x, y, ...) 26: (function () vec_default_ptype2(x = x, y = y, x_arg = x_arg, y_arg = y_arg, 27: vec_default_ptype2(x = x, y = y, x_arg = x_arg, y_arg = y_arg, call = call, 28: withRestarts(stop_incompatible_type(x, y, x_arg = x_arg, y_arg = y_arg, `vc 29: withOneRestart(expr, restarts[[1]]) 30: doWithOneRestart(return(expr), restart) 31: stop_incompatible_type(x, y, x_arg = x_arg, y_arg = y_arg, `vctrs:::from_di 32: stop_incompatible(x, y, x_arg = x_arg, y_arg = y_arg, details = details, .. 33: stop_vctrs(message, class = c(class, "vctrs_error_incompatible"), x = x, y 34: abort(message, class = c(class, "vctrs_error"), ..., call = vctrs_error_cal 35: signal_abort(cnd, .file) Enter an item from the menu, or 0 to exit
xfun::session_info()
> xfun::session_info() R version 4.2.1 (2022-06-23) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 22.04.1 LTS Locale: LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8 LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C Package version: askpass_1.1 assertthat_0.2.1 brew_1.0.7 brio_1.1.3 cachem_1.0.6 callr_3.7.3 class_7.3-20 classInt_0.4-8 cli_3.4.1 clipr_0.8.0 colorspace_2.0-3 commonmark_1.8.0 compiler_4.2.1 cpp11_0.4.3 crayon_1.5.2 credentials_1.3.2 curl_4.3.3 DBI_1.1.3 desc_1.4.2 devtools_2.4.3 diffobj_0.3.5 digest_0.6.30 dplyr_1.0.10 e1071_1.7-12 ellipsis_0.3.2 evaluate_0.18 fansi_1.0.3 farver_2.1.1 fastmap_1.1.0 fs_1.5.2 generics_0.1.3 gert_1.6.0 gganimate_1.0.8 ggpattern_1.0.1 ggplot2_3.4.0 gh_1.3.0 gifski_1.6.6-1 gitcreds_0.1.1 glue_1.6.2 graphics_4.2.1 grDevices_4.2.1 grid_4.2.1 gridpattern_1.0.2 gtable_0.3.1 highr_0.9 hms_1.1.2 httr_1.4.2 ini_0.3.1 isoband_0.2.6 jsonlite_1.8.3 KernSmooth_2.23-20 knitr_1.40 labeling_0.4.2 lattice_0.20.45 lifecycle_1.0.3 magrittr_2.0.3 MASS_7.3.58 Matrix_1.5.1 memoise_2.0.1 methods_4.2.1 mgcv_1.8.40 mime_0.12 munsell_0.5.0 nlme_3.1.160 openssl_2.0.0 parallel_4.2.1 pillar_1.8.1 pkgbuild_1.3.1 pkgconfig_2.0.3 pkgload_1.3.1 png_0.1.7 praise_1.0.0 prettyunits_1.1.1 processx_3.8.0 progress_1.2.2 proxy_0.4-27 ps_1.7.2 purrr_0.9000.0.9000 R6_2.5.1 rappdirs_0.3.3 rcmdcheck_1.4.0 RColorBrewer_1.1.3 Rcpp_1.0.9 rematch2_2.1.2 remotes_2.4.2 rlang_1.0.6 roxygen2_7.2.1 rprojroot_2.0.3 rstudioapi_0.13 rversions_2.1.1 s2_1.1.0.9000 scales_1.2.1 sessioninfo_1.2.2 sf_1.0-8 splines_4.2.1 stats_4.2.1 stringi_1.7.8 stringr_1.4.1 sys_3.4.1 testthat_3.1.5 tibble_3.1.8 tidyselect_1.1.2 tools_4.2.1 tweenr_2.0.2 units_0.8-0 usethis_2.1.5 utf8_1.2.2 utils_4.2.1 vctrs_0.5.0.9000 viridisLite_0.4.1 waldo_0.4.0 whisker_0.4 withr_2.5.0 wk_0.7.0 xfun_0.34 xml2_1.3.3 xopen_1.0.0 yaml_2.3.6 zip_2.2.1
Issue reported upstream to {gganimate}: https://github.com/thomasp85/gganimate/issues/470
Original animation code now also works again with the developmental version of {gganimate} (with I())
I()
{gganimate}
vignette example no longer working{ggplot2}
v3.4.0 switching to{vctrs}