manual_tourmanual_tour and proto_density, and bringing your own basisbasis_olda & .lapply_rep_lenproto_basis1d() has an text_offset argument for the horizontal position of text labelsgc() calls, too expensive for the minor issues it tried to mitigateproto_density() now changes the aspect ratio to 1/2 (y/x), twice as wideanimate_plotly() will change the x scaleratio to 2 (for non plotly::subplot animations)map_relative(); position = “left” or “right” is fully off outside of the data and slightly smallerproto_*() default; decreasing the text size (5 -> 4)proto_*() default; decreasing the line size a (1 -> .6)filmstrip & facet_wrap_tour(): adds theme for borders to help distinguish facetstheme_spinifex() to include shading and strip outline consistent with the above pointggtour(), such that tours don’t want too far to the sides as they were in cheem radial tourstheme_spinifex(): tightening margins, facet strip outlines, and better separating theme elements from ggtour default settingsfacet_wrap_tour(), for faceting toursproto_frame_cor2(), adds text for the within-frame correlation squaredappend_fixed_y(), add/overwrite data y column to fixed values, such as for the height of predicted values or residuals of a modeldraw_basis() static ggplot2 variant of proto_basis, that accepts a basis directly without requiring ggtour initializationproto_* functions have row_index argument; allowing for subsetting that is compatible with faceting and appending a fixed y! By default, proto_point() will plot non-selected points in faint grey, behind selected pointstheme_spinifex() changed removing the duplicate legend display, fewer warnings, and less frame oddities (geom existence issues) with animate_plotlyanimate_* functionsggtour() synchronizes angle usage with {tourr} toursmanual_tour() and related functions now handle 1D projectionsproto_highlight/1d() for highlighting specific points in ggtoursfilmstrip(), creates a ggplot faceting the frames of a ggtour for a static outputpenguins_na.rm, from palmerpenguins::penguins, removed NA rows & reordered columnsrownum_index to proto_text, for labeling subsetsspinifex::save_history, muting the noisy execution of tourr::save_history?ggplot_tour() to get started!! – 10x new proto_* functions, essentially geoms_* for animated tours: basis/1d, point, origin/1d, density, text, hex, default/1d. – 2x animation funcs; animate_plotly() and aniamte_gganimate() – 2x internal utility functionsvignette("ggproto_api", "spinifex")BeastCancer_na.rm datasetfor loopsmanip_var_of(basis) suggests a variable to used based on the rank of the contributions of the basis.Basis_* functions to find features of interest, powered by {Rdimtools}. - basis_olda() - basis_odp() - basis_onpp() - basis_olpp()
New util functions: - scale_sd() center and scale each variable by it’s standard deviation - scale_01() center and scale each variable to be between [0, 1] - basis_half_circle(), variable agnostic basis with minimal variable dependence - as_history_array(), coerces an array of bases into the same attributes and class as returns of tourr::save_history()
view_basis() and oblique_basis(), no longer listed in view_frame() documentationrender_plotly() going longer than 10 secondsggproto, accepts a list of {ggplot2} objects for more control over visual outputaes_args, accepts a list of arguments to pass into the aes() call within geom_point(). This is used for variable mappings, such as color, but needs to be qualified as this is standard evaluationidentity_args, accepts a list of arguments to pass call within geom_point(), but outside of aes(). This is used for scalar options or manually mapped vector such as point size or alphaPimaIndiansDiabetes_long & PimaIndiansDiabetes_widescale_axes() to automatically scale to data rather than assume the data is scaled to [0, 1]view_basis() and oblique_basis() in favor of view_frame()view_manip_space()geom_point(aes(...)) instead of hard-coded argumentsggplot2::geom_point(...)gganimate::anim_save() in render_gganimate()htmlwidgets::saveWidget() in render_plotly()run_app("radial_tour")To accommodate interactive use, rather than predefined paths:
oblique_basis()oblique_frame()run_app() New shiny app!map_absolute()is_orthonormal() slightly more general than tourr::is_orthonormal()Initial submission to CRAN. Vignette: “spinifex”
-play_tour_path() - play_manual_tour()
view_basis()view_manip_space()