Giter Site home page Giter Site logo

yihui / animation Goto Github PK

View Code? Open in Web Editor NEW
207.0 22.0 60.0 25.44 MB

A gallery of animations in statistics and utilities to create animations

Home Page: https://yihui.org/animation/

R 59.48% TeX 35.92% CSS 2.46% JavaScript 1.28% HTML 0.86%
r r-package animation statistics statistical-computing statistical-graphics

animation's Introduction

animation

R-CMD-check Downloads from the RStudio CRAN mirror

Introduction

This is an R package to create and export animations to a variety of formats (HTML/JS, GIF, Video, PDF), and it also serves as a gallery of statistical animations.

Installation

To install the stable version on CRAN:

install.packages('animation')

To install the GitHub version under development:

install.packages('animation', repos = 'https://xran.yihui.org')

If you want to contribute, the documentation and NAMESPACE of this package are generated by roxygen2 and Rd2roxygen:

if (!require('Rd2roxygen') install.packages('Rd2roxygen')
Rd2roxygen::rab('animation', install = TRUE)

Contact

Bugs and feature requests can be filed to https://github.com/yihui/animation/issues. Pull requests are also welcome.

animation's People

Contributors

cderv avatar cmdcolin avatar girlish avatar jeroen avatar joshobrien avatar mingsnu avatar oganm avatar ottlngr avatar ronggui avatar skyebend avatar spacedman avatar stla avatar stlagsk avatar trevorld avatar yihui avatar yulijia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

animation's Issues

Interval vector length

I don't know if this animation or imagemagick,

I am trying to animate plots using im.convert. It works when I down sample the number of images but I'd like all for a smoother animation.

scenario 1: 1024 pngs, interval = c(rep(.01,1023),6) # doesn't work gives error and say see ?im.convert

scenario 2: 512 pngs, interval = c(rep(.01,511),6) # works

is there a vector length limit or am I missing something?

Thanks!

speed compatibility to RStudio's plot device

I've run into issues where rendering animations slows to a crawl when using animation library in RStudio. It seems that this may be caused by the fact that that the RStudio plot device is caching all of the plots (as is the animation lib, to replay with ani.replay(). For the past year or so, the ndtv package has used this code as a work around:

  if (!is.function(options()$device)){
    if (names(dev.cur())=="RStudioGD" & doRStudioHack){
      message("RStudio's graphics device is not well supported by ndtv, attempting to open another type of plot window")
      # try to open a new platform-appropriate plot window
      if (.Platform$OS.type=='windows'){
        windows()
      } else if(length(grep(R.version$platform,pattern='apple'))>0)  # is it mac?
      {
        quartz()
      } else {  # must be unix
        x11()
      }
      externalDevice<-TRUE
    }
  }

This works reasonably well, but raises the ire of R CMD check --as-cran, since it requires doing platform-specific device opening, rather than relaying on plot.new() to make the appropriate choice. I can't call plot.new(), since RStudio has overridden it to generate an RStudio device. Does anyone know of a way to find out what plot device would be called without RStudio? Or even better, is there some way to instruct the RStudio device to temporarily disable caching?

more options in the graphical device

In the saveVideo function,

 ani.dev(img.fmt, width = ani.options("ani.width"), height = ani.options("ani.height"))

does not allow us to set other options, such as res. It would be nice to include this possibility.

Option to use hosted/own HighlightJS libraries

Per default, this package uses the CDN from Yandex.st to embed the HighlightJS library including the CSS file.
I would like to use the animation package in a sensitive environment and would like to prevent internet servers for these requests. It would be great, if this package had an option to define a individually hosted HighlightJS library. This would avoid contacting internet servers completely.

saveHTML()

a single saveHTML() might be better than ani.start() and ani.stop().

get rid of ani.options('outdir')

the option outdir is confusing, and users often do not know where the animations were created since it defaults to tempdir(); a better and common practice is to do everything in the current working directory

below is a list of affected functions:

$ grep outdir -r .
./inst/examples/ani.options-ex.R:## change outdir to the current working directory
./inst/examples/ani.options-ex.R:ani.options(outdir = getwd())
./inst/examples/saveHTML-ex.R:## use the function brownian.motion() in this package; note this page is created in 'index.html' under ani.options('outdir')
./inst/misc/Sweave_animation.Rnw:ani.options(outdir = getwd())
./inst/misc/Rweb/demo.html:ani.options(outdir = "/tmp")
./inst/misc/Rweb/Rweb.R:    imgdir = file.path(ani.options('outdir'), ani.options('imgdir'))
./NEWS:  ani.options('outdir') (similar to saveGIF())
./NEWS:    o fixed a buglet in saveMovie(): outdir does not actually work.
./NEWS:    o fixed a bug caused by the 'outdir' option in ani.options() when
./NEWS:  'outdir' is a relative path which makes ani.stop() fail (thanks,
./man/ani.options.Rd:  \item{outdir}{character: specify the output directory
./man/ani.options.Rd:  current working directory by \code{ani.options(outdir =
./man/ani.options.Rd:## change outdir to the current working directory
./man/ani.options.Rd:ani.options(outdir = getwd())
./man/saveHTML.Rd:## created in 'index.html' under ani.options('outdir')
./man/g.brownian.motion.Rd:g.brownian.motion(p = 20, start = 1900, digits = 14, file = file.path(ani.options("outdir"), 
./man/g.brownian.motion.Rd:unlink(file.path(ani.options("outdir"), ani.options("htmlfile")))
./man/saveLatex.Rd:  \code{ani.options('outdir')}? If you have not installed
./R/zzz.R:    outdir = tempdir(), imgdir = "images", htmlfile = "index.html",
./R/ani.start.R:    ani.options(outdir = c(ani.options("outdir"), setwd(ani.options("outdir"))))
./R/saveGIF.R:  outpath_final=file.path(ani.options('outdir'),movie.name)
./R/saveHTML.R:  imgdir = file.path(ani.options('outdir'), ani.options('imgdir'))
./R/saveHTML.R:  htmlfile = file.path(ani.options('outdir'), ani.options('htmlfile'))
./R/saveHTML.R:    message('You may use ani.options(outdir = getwd()) or saveHTML(..., outdir = getwd()) to generate files under the current working directory.')
./R/im.convert.R:    output.path = file.path(ani.options('outdir'), output)
./R/saveSWF.R:  outdir = ani.options('outdir')
./R/saveSWF.R:  owd = setwd(outdir)
./R/saveSWF.R:            output.path <- normalizePath(file.path(outdir, swf.name)))
./R/saveLatex.R:#'   \file{animfp.sty} to \code{ani.options('outdir')}? If you have not
./R/saveLatex.R:  outdir = ani.options('outdir')
./R/saveLatex.R:          ani.options(img.fmt = file.path(outdir, paste(img.name, '%d.',
./R/saveLatex.R:          ## outdir = '.'
./R/saveLatex.R:  owd = setwd(outdir)
./R/saveLatex.R:  img.fmt = file.path(outdir, sprintf("%s%s.%s", img.name, num, file.ext))
./R/saveLatex.R:                ifelse(full.path, gsub('\\\\', '/', normalizePath(file.path(outdir, img.name))), img.name),
./R/saveLatex.R:                ifelse(full.path, gsub('\\\\', '/', normalizePath(file.path(outdir, img.name))), img.name),
./R/ani.options.R:#' \item{outdir}{character: specify the output directory when we
./R/ani.options.R:#' working directory by \code{ani.options(outdir = getwd())}.}
./R/saveVideo.R:  outdir = ani.options('outdir')
./R/saveVideo.R:  owd = setwd(outdir)
./R/saveVideo.R:            output.path <- normalizePath(file.path(outdir, video.name)))
./R/g.brownian.motion.R:#' unlink(file.path(ani.options('outdir'), ani.options('htmlfile')))
./R/g.brownian.motion.R:    digits = 14, file = file.path(ani.options('outdir'),
./R/ani.stop.R:    setwd(ani.options("outdir")[2])
./R/ani.stop.R:    ani.options(outdir = ani.options("outdir")[1])

use R-forge to host image frames

think on how to reorganize the function examples: I want to extract some code from the examples and generate the images on the fly, then sync with R-forge. Finally demonstrate in animation.yihui.name

a first step might be extract all the examples out to individual scripts rather than putting them in the help pages. I.e. use @example instead of @examples

Removing excess shQuote in im.convert for Windows

I tried run line

im.convert("bm*.png", output = "bm-animation1.gif")

from im.convert example. It failed with info:

Executing: 
"convert" -loop 0 -delay 100 bm*.png "bm-animation1.gif"

But it's work for edited im.convert function. I just remove excess shQuote for convert:

Executing: 
convert -loop 0 -delay 100 bm*.png "bm-animation1.gif"

Operation system: Windows 8.1
R version: 3.0.2

prevent file opening

Hello,
When I create an animation with saveGIF, the output file is automatically opened. Is there a way to prevent that ?

saveVideo issues

I’ve had a few problems with saveVideo. The brownian.motion example doesn't work and I couldn't change the plot width and height.

Here is your example

saveVideo({
    par(mar = c(3, 3, 1, 0.5), mgp = c(2, 0.5, 0), tcl = -0.3, cex.axis = 0.8, 
        cex.lab = 0.8, cex.main = 1)
    ani.options(interval = 0.05, nmax = 300)
    brownian.motion(pch = 21, cex = 5, col = "red", bg = "yellow")
}, video.name = "BM.mp4", other.opts = "-b 300k")  # higher bitrate, better quality

Quicktime Player returns the error message: The document "BM.mp4" could not be opened.

Here is my modified version which works fine

saveVideo({
    par(mar = c(3, 3, 1, 0.5), mgp = c(2, 0.5, 0), tcl = -0.3, cex.axis = 0.8, 
        cex.lab = 0.8, cex.main = 1)
    brownian.motion(pch = 21, cex = 5, col = "red", bg = "yellow")
}, video.name = "BM.mp4", other.opts = "-pix_fmt yuv420p -b 300k", interval = 0.05, nmax = 300, ani.width=400, ani.height=500)  # higher bitrate, better quality

Particular points are:

  1. other.opts in the example needs to retain -pix_fmt yuv420p, as in my version.
  2. ani.width and ani.height do not get passed to ffmpeg if included via ani.options as in your example, but they do if included via … in the saveVideo call – see my version.
  3. The video.name file does not get copied back to the working directory if it already exists.

Thanks for a very useful package.
Tim Cole

use ani.pause() instead of Sys.sleep()

make it be like an API!

ani.pause = function() {
  Sys.sleep(ani.options('interval'))
}

purpose: avoid waiting when in a non-interactive graphics device

need warnings in ani.options()

  1. check consistency between ani.type and ani.dev, e.g. need a warning message when the former is pdf but the latter is png
  2. the unit of ani.height and ani.width can be dramatically different between pdf() and png()/jpeg(); when users pass 480 to the PDF device, we need to issue a warning

saveHTML recycles animations

I found the result of the following code to be surprising:

library(animation)
saveHTML(for (i in 1:10) plot(rnorm(10)) )
saveHTML(for (i in 1:5) plot(rnorm(10), col=2) )

The second animation has 10 frames. The last five frames are the same as the last five frames in the first animation. This seems to be the case whenever a shorter animation is called after a longer animation. I suppose this should be considered a bug?

CRAN check warnings about missing documentation

R CMD Check --as-cran gives following warnings

* checking Rd \usage sections ... WARNING
Undocumented arguments in documentation object 'saveHTML2'
  ‘title’ ‘pause’ ‘endPause’ ‘loopmode’ ‘overwrite’ ‘description’
Documented arguments not in \usage in documentation object 'saveHTML2':
  ‘global.opts’ ‘single.opts’

Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
The \usage entries must correspond to syntactically valid R code.
See chapter ‘Writing R documentation files’ in the ‘Writing R
Extensions’ manual.

looks like oxy docs don't match up with the code

Problem with ``saveGIF`` on Windows

I'm getting the following error when I run the example from the help file:

saveGIF({
  for (i in 1:10) plot(runif(10), ylim = 0:1)
})

I cannot find ImageMagick with convert = "convert"
but I can find it from the "Program Files" directory: C:\Program Files/ImageMagick-6.9.1-Q16/convert.exe
Executing: 
  "C:\Program Files\ImageMagick-6.9.1-Q16\convert.exe" -loop 0 -delay 100 Rplot1.png Rplot2.png Rplot3.png
Rplot4.png Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: unable to load module `C:\Program Files\ImageMagick-6.9.1-Q16\modules\coders\IM_MOD_RL_PNG_.dll': The specified module could not be found.
@ error/module.c/OpenModule/1282.
convert.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.
convert.exe: no images defined `animation.gif' @ error/convert.c/ConvertImageCommand/3230.
an error occurred in the conversion... see Notes in ?im.convert
[1] FALSE
Warning messages:
1: running command 'C:\Windows\system32\cmd.exe /c convert --version' had status 4 
2: running command 'C:\Windows\system32\cmd.exe /c "C:\Program Files\ImageMagick-6.9.1-Q16\convert.exe" -loop 0  -delay 100 Rplot1.png Rplot2.png Rplot3.png Rplot4.png Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"' had status 1 
3: In cmd.fun(convert) :
'"C:\Program Files\ImageMagick-6.9.1-Q16\convert.exe" -loop 0  -delay 100 Rplot1.png Rplot2.png Rplot3.png Rplot4.png Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"' execution failed with error code 1
4: running command '"C:\Program Files\ImageMagick-6.9.1-Q16\convert.exe" -loop 0  -delay 100 Rplot1.png Rplot2.png Rplot3.png Rplot4.png Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"' had status 1 
5: In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="animation.gif": The system cannot find the file specified

Looks like it's not escaping the space in "Program Files" and also not locating the "IM_MOD_RL_PNG_.dll" file.

problems in the JSS paper

  1. page 2: somewhat complicated --> complicated
  2. page 2: availabel --> available
  3. page 3: 2D (or 3D) --> 2D or 3D

Error Saving .gif video using windows with animation library

Hello. I am trying to create a simple .gif video using Windows 7. I installed ImageMagick and it seems to be working by itself. Below is the following code I tried to run and the corresponding error message. When I run the code the ImageMagik program opens up and it looks like the data for the first run is plotted (see image below). I suspect the problem is differences between windows and Unix commands? Perhaps I need to add more to the ani.options? Any help or suggestions would be greatly appreciated. Thank you.

Kevin

Add libraries needed

library(animation)

Make sure convert is at my location of where the data is saved

ani.options(convert = 'C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe')
ani.options("convert")#check to see if short hand notation works
[1] "C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe"

Create a .gif video of the graph

saveGIF({

  • for (i in 1:10) plot(runif(10), ylim = 0:1)
  • })

Executing:
"C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe" -loop 0 -delay 100
Rplot1.png Rplot2.png Rplot3.png Rplot4.png Rplot5.png Rplot6.png
Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"
'C:/Program' is not recognized as an internal or external command,
operable program or batch file.
Output at: animation.gif
[1] TRUE
Warning messages:
1: running command 'C:\Windows\system32\cmd.exe /c "C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe" -loop 0 -delay 100 Rplot1.png Rplot2.png Rplot3.png Rplot4.png Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"' had status 1
2: In cmd.fun(convert) :
'"C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe" -loop 0 -delay 100 Rplot1.png Rplot2.png Rplot3.png Rplot4.png Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png Rplot10.png "animation.gif"' execution failed with error code 1

imdisplay

incorrect image.js file generated by cutting and pasting from pdf file

This isn't really an issue, but...

I was testing out animation, and tried the html plot by cutting and pasting from the pdf manual. Specifically, I copied a little bit that read:

, img.name = "norm_plot", single.opts = "’utf8’: false", autoplay = FALSE, interval = 0.5,

you may notice that the utf8 bit is surrounded by curly single quotes, which make javascript choke. You don't even need the quote marks at all in that bit of JS, so you might want to get rid of them entirely so people like me who just try it and see by pasting commands get something that works.

Very cool by the way. Once I figured out the error, this is a nice quick way to visualize stuff.

output directory of save*

saveGIF and saveVideo uses temporal dir while saveHTML uses current dir for output movie file or html file.
It's inconvenient that output movie is put into temporal dir.

Is this designed behavior?

CRAN check shows broken doc urls

It looks like the old site has been migrated, but I couldn't find corresponding pages for the first examples on the new site

Found the following (possibly) invalid URLs:
  URL: http://animation.yihui.name/compstat:sample_mean_monte_carlo
    From: man/MC.samplemean.Rd
    Status: 404
    Message: Not Found
  URL: http://animation.yihui.name/dmml:bootstrap_i.i.d
    From: man/boot.iid.Rd
    Status: 404
    Message: Not Found
  URL: http://http://vis.supstat.com/2012/11/brownian-motion-with-r/
    From: man/BM.circle.Rd
    Status: Error
    Message: libcurl error code 6
        Could not resolve host: http
  URL: http://http://vis.supstat.com/2013/04/law-of-large-numbers/
    From: man/lln.ani.Rd
    Status: Error
    Message: libcurl error code 6
        Could not resolve host: http
  URL: http://stat.cmu.edu/datasets/
    From: man/pollen.Rd
    Status: Error
    Message: libcurl error code 6
        Could not resolve host: stat.cmu.edu

save.Video silently fails to overwrite old file

When I run saveVideo() again and again (with changes), the video file opens, but is not changed on the disk.
I am guessing it simply does not overwrite the old file of the same name.

The function issues no warning, but says:

Video has been created at: /Users/Max/Github/ODCD-experiments/animation.mp4

Can other people reproduce this behavior?

I am on:

  • OS X 10.10.3
  • Animation 2.3

add other.opts -pix_fmt yuv420p to saveVideo() as a work-around for ffmpeg issue with .mp4?

I'm the maintainer of the CRAN package ndtv (http://cran.r-project.org/web/packages/ndtv/index.html), which Depends on your animation package to produce movies of dynamic networks.

The animation package is amazing, except that certain users sometimes report problems playing the .mp4 files produced -- they work in VLC, but not in any other media player like QuickTime or Window Media Player.

After trying lots of other possibilities, I found this stackoverflow thread about specifying the pixel format:

http://stackoverflow.com/questions/14430593/encoding-a-readable-movie-by-quicktime-using-ffmpeg

Several of our users have reported that they can correct the problem by
setting the pixel format using the other.opts='-pix_fmt yuv420p"
argument to saveVideo() produces properly formatted .mp4 files via ffmpeg.

I realize that in some sense this may be an ffmpeg bug (pixel format is
underspecified?). ffmpeg seems to be aware of the issue (http://trac.ffmpeg.org/ticket/658) But considering the ffmpeg / avconv split, I'm not sure it will be possible to get it addressed reliably in the various downstream versions.

Do you have any suggestions on how to move forward with this?

Would you consider modifying the animation package to add the appropriate -pix_fmt flag by default? Maybe it only needs to be added on certain platform/ffmpeg configurations?

SaveHMTL()

Hi,
I get the following error using the saveHTML function :
Error : invalid version specification animation

I tried with R 2.10 and R 2.12.1

Alex

save* functions do not overwrite existing output files

If a file of the same name as the specified output of save* already exists, this file is not overwritten with the output of save*. The new output of save* is created in tempdir(), but it does not get copied to the specified output name relative to the working directory.

The reason is that commit 1bfe44a introduced file.copy to copy the result of the save* functions from tempdir() to the working directory. The default behaviour of file.copy is to not overwrite the target file. This is done silently (i.e. without a warning or error). Therefore save* prints a message that the file was created, even if the original file with the same name was not replaced.

One fix would be to just add overwrite = TRUE to file.copy. Another possibility would be to introduce an argument and possibly also an option to control the overwriting behaviour.

CART animation

This has been in NEWS for long but never gets implemented:

o A function cart.ani() to show the splitting process of classification and regression trees.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.