TeachingDemos (version 2.10)

TkApprox: Plot a set of data in a Tk window and interactively move lines to see predicted y-values corresponding to selected x-values.

Description

This function plots a dataset in a Tk window then places 3 lines on the plot which show a predicted y value for the given x value. The lines can be clicked on and dragged to new x-values with the predicted y-values automatically updating. A table at the bottom of the graph shows the differences between the pairs of x-values and y-values.

Usage

TkApprox(x, y, type = "b", snap.to.x = FALSE, digits = 4,
  cols = c("red", "#009900", "blue"), xlab = deparse(substitute(x)),
  ylab = deparse(substitute(y)), hscale = 1.5, vscale = 1.5,
  wait = TRUE, ...)

Arguments

x

The x-values of the data, should be sorted

y

The corresponding y-values of the data

type

Type of plot (lines, points, both) passed to plot

snap.to.x

If True then the lines will snap to x-values (can be changed with a checkbox in the Tk window)

digits

Number of significant digits to display (passed to format)

cols

Vector of 3 colors, used for the reference lines

xlab

Label for x-axis

ylab

Label for y-axis

hscale

Horizontal Scale of the plot, passed to tkrplot

vscale

Vertical Scale of the plot, passed to tkrplot

wait

Should R wait for the window to be closed

Additional parameters passed to plot

Value

If wait is FALSE then an invisible NULL is returned, if wait is TRUE then an invisible list with the x and y values of the 3 reference lines is returned.

Details

This provides an interactive way to explore predictions from a set of x and y values. Internally the function approxfun is used to make the predictions.

The x-value of the 3 reference lines can be changed by clicking and dragging the line to a new position. The x and y values are shown in the margins of the graph. Below the graph is a table with the differences (absolute value) between the pairs of points.

This can be used to find peaks/valleys in trends and to see how they differ from starting points, other peaks/valleys, etc..

See Also

approxfun, TkSpline

Examples

Run this code
# NOT RUN {
if(interactive()) {
  with(ccc, TkApprox(Time2,Elevation))
}
# }

Run the code above in your browser using DataCamp Workspace