Learn R Programming

sfsmisc (version 1.1-19)

tkdensity: GUI Density Estimation using Tcl/Tk

Description

This is graphical user interface (GUI) to density, allowing for dynamic bandwidth choice and a simple kind of zooming, relying on library(tcltk).

Usage

tkdensity(y, n = 1024, log.bw = TRUE, showvalue = TRUE,
          xlim = NULL, do.rug = size < 1000, kernels = NULL,
          from.f = if (log.bw) -2 else 1/1000,
          to.f   = if (log.bw) +2.2 else 2,
          col = 2)

Value

none.

(How could this be done? tcltk widgets run as separate processes!)

Arguments

y

numeric; the data the density of which we want.

n

integer; the number of abscissa values for density evaluation (and plotting).

log.bw

logical; if true (default), the gui scrollbar is on a log bandwidth scale, otherwise, simple interval.

showvalue

logical; if true, the value of the current (log) bandwidth is shown on top of the scrollbar.

xlim

initial xlim for plotting, see plot.default.

do.rug

logical indicating if rug(y) should be added to each plot. This is too slow for really large sample sizes.

kernels

character vector of kernel names as allowable for the kernels argument of the standard density function.

from.f, to.f

numeric giving the left and right limit of the bandwidth scrollbar.

col

color to be used for the density curve.

Author

Martin Maechler, building on demo(tkdensity).

Details

library(tcltk) must be working, i.e., Tcl/Tk must have been installed on your platform, and must have been visible during R's configuration and/or installation.

You can not only choose the bandwidth (the most important parameter), but also the kernel, and you can zoom in and out (in x-range only).

Examples

Run this code
if (dev.interactive(TRUE)) ## does really not make sense otherwise
 if(try(require("tcltk"))) { ## sometimes (rarely) there, but broken

  data(faithful)
  tkdensity(faithful $ eruptions)

  set.seed(7)
  if(require("nor1mix"))
     tkdensity(rnorMix(1000, MW.nm9), kernels = c("gaussian", "epanechnikov"))
 }

Run the code above in your browser using DataLab