For each period (row) or for the overall period of the observed matrix of the "sts" object, a map showing the counts by region is produced. It is possible to redirect the output into files, e.g., to generate an animated GIF.

stsplot_spacetime(x, type, legend = NULL, opts.col = NULL, labels = TRUE,
         = 250, cex.lab = 0.7, verbose = FALSE,
                  dev.printer = NULL, ...)



an object of class "sts".


a formula (see stsplot). For a map aggregated over time (no animation), use observed ~ 1 | unit, otherwise observed ~ 1 | unit * time.


An object of type list containing the following items used for coloring

  • dxposition increments in x direction

  • dyposition increments in y direction

  • xposition in x

  • yposition in y

  • onceBoolean - if TRUE then only shown once

If NULL then a default legend is used.


A list containing the two elements

  • ncolorsNumber of colors to use for plotting

  • use.colorBoolean if TRUE then colors will be used in the palette, otherwise grayscale


Boolean whether to add labels

Number of milliseconds to wait between each plot


cex of the labels


Boolean whether to write out extra information


Either NULL (default), which means that plotting is only to the screen, or a list with elements device, extension, width, height, and name (with defaults png, ".png", 640, 480, and "Rplot", respectively) to dev.print the plots to files (only works in interactive sessions). This option is more or less obsolete since the animation package provides better features for output to files.


Extra arguments sent to the plot function.


Michael Höhle


The animate.sts method provides a re-implementation and supersedes this function!

See also

Other stsplot types, and animate.sts for the new implementation.



## map of total counts by district
plot(ha.sts, type=observed ~ 1 | unit)
## only show a sub-period total for two selected districts
plot(ha.sts[1:20,1:2], type=observed ~ 1 | unit)

if (FALSE) {
# space-time animation
plot(aggregate(ha.sts,nfreq=13), type= observed ~ 1 | unit * time)

#print the frames to a png device
#and do the animation without extra sleeping between frames
imgname <- file.path(tempdir(), "berlin")
plot(aggregate(ha.sts,nfreq=13), type = observed ~ 1 | unit * time,, dev.printer=list(name=imgname))

#Use ImageMagick (you might have to adjust the path to 'convert')
system(paste0("convert -delay 50 ", imgname,
              "*.png ", imgname, "-animated.gif"))