49
Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford, Adrian Bowman Department of Statistics, The University of Glasgow, UK

Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Statistical Cartoons

rpanel: simple interactive controls for R functionsusing the tcltk package

Ewan Crawford, Adrian Bowman

Department of Statistics, The University of Glasgow, UK

Page 2: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Elementary example

Page 3: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Code for example

library(rpanel)

x11(width=4,height=4)

qq.draw <- function(panel) {

z <- bc.fn(panel$y, panel$lambda)

qqnorm(z, main = paste("lambda =",

round(panel$lambda, 2)))

panel

}

panel <- rp.control(y = exp(rnorm(50)), lambda = 1)

rp.slider(panel, lambda, -2, 2, qq.draw,

showvalue = TRUE)

Page 4: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Second elementary example

Page 5: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Second elementary example

Page 6: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Relationship with wider gui packages

Relationship with wider ("widgety") gui packages

- Rgtk2

- gWidgets

- playwith

- rwxwidgets

- JGR

- rtcltk

...

Page 7: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Indication of tools available

What we offer in terms of widgets

- panel/window

- button (with repeat)

- slider/scrollbar

- radiogroup

- textentry (or multiples)

- checkbox (or multiples)

- listbox

- doublebutton

- image

- line

- messagebox

- tkrplot

...

Page 8: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Gulls

Page 9: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Spatial examples: Geosim

Page 10: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Spatial examples: Mururoa

Page 11: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Spatial examples: Rosyth

Page 12: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Current developments

Current developments

- multi-line text box

- combo box

- pos/grid

- tabbed notebook

- fonts

- slider group

...

- essentially all BWidgets and TkTable

- More Cartoons

Page 13: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Web site

www.stats.gla.ac.uk/~adrian/rpanel

[email protected]

[email protected]

Page 14: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

-

Page 15: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

What

- what i’ll talk about, widgets and their uses

- cartoons explanation

Page 16: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Why

- applications

- rationale (teach dept etc etc)

- xlispstat etc

Page 17: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

soa2

Big heading: RGtk2

Sub heading: GTK+

Project page:

http://www.gtk.org

An example of what can be done with GTK+, The GIMP

Illustrated by image

Page 18: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,
Page 19: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

soa2

Sub heading: RGtk2

Project page:

http://www.ggobi.org/rgtk2/

Example of what can be done with Rgtk2, demo

Illustrated by image

Page 20: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,
Page 21: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

soa2

** Third slide: (May not all fit on the one slide, see my note to you

about omitting the code below)

Big heading: Gwidgets

Project page:

http://wiener.math.csi.cuny.edu/pmg/gWidgets

Illustrated by images

Page 22: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,
Page 23: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Gwidgets code example (for the slider image)

Adrian - if you see fit, do not include this code. It may be worth

including out of fairness as gwidgets is the only easy alternative to

using rpanel

library(gWidgets)

Page 24: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

options("guiToolkit"="RGtk2")

require(lattice)

dataSet = faithful$eruptions

w = gwindow("Slider example")

g = gpanedgroup(cont=w)

g1 = ggroup(horizontal = FALSE, cont = g) # first is left

gg = ggraphics(cont = g) # second is right

sl <- gslider(1, length(dataSet), by = 1, cont=g1, handler =

function(h,...) { print(histogram(dataSet, nint = svalue(h$obj)))

svalue(sb) <- svalue(h$obj)

})

sb <- gspinbutton(1, length(dataSet), by = 1, cont=g1, handler =

function(h,...) {

print(histogram(dataSet, nint = svalue(h$obj)))

Page 25: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

svalue(sl) <- svalue(h$obj)

})

l = glabel("adjust number of bins", cont=g1)

histogram(dataSet) # start it off

Page 26: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

soa2

** Slide Four

Big heading: rwxwidgets

Project page:

http://www.omegahat.org/RwxWidgets/

Illustrate rwxwidgets image:

Page 27: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

** Slide Five

Big heading: JGR

Project page:

http://rosuda.org/JGR/

Illustrations:

Page 28: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,
Page 29: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,
Page 30: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

** Slide Five

** Slide Six

rtcltk

Pages:

http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/

Illustative image: rtcltk_editbox2.jpg

Page 31: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

soa

- ---as per lanc --- - get images -

+ new -> Playwith

Page 32: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

method

- who did what

- adrian b, simon urbanek, gavin, richard b

- tcl/tk and internals

- list of controls/widgets/facilities (but not exhaustive?)

Page 33: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- preview of examples - click to run - check what runs -

Page 34: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- preview of examples - click to run - check what runs -

Page 35: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- tables(panel)

Page 36: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- normal fitting

Page 37: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- preview of examples - click to run - check what runs -

Page 38: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- regression 1d

Page 39: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- cosine regression

Page 40: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- density est 1d

Page 41: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- gulls

Page 42: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- clyde map

Page 43: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- spatial sim

Page 44: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- mururoa

Page 45: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

examples

- rosyth

Page 46: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

code

*** As per Adrian’s build up? ***

panel <- rp.control("Clyde data", do = DO, days = Days)

panel <- rp.slider(panel, day.adj, 0, 364,

action = days.plot)

panel <- rp.checkbox(panel, model.showing, model.fn,

title = "Show model")

Behind the scenes . . .

panel <- action(panel)

Page 47: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

reaction

- discuss with AB

- applications

Page 48: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

discussion

- my comments, pros, cons

- future plans

- pos, grid, notebook, combo ...

Page 49: Ewan Crawford, Adrian Bowman - R: The R Project for ...Bowman.pdf · Statistical Cartoons rpanel: simple interactive controls for R functions using the tcltk package Ewan Crawford,

Web site

www.stats.gla.ac.uk/~adrian/rpanel