A GUI for interactive plots using GTK+

A GTK+ graphical user interface for editing and interacting with R plots.


Changes in Version 0.9-54

o renamed showGrobsBB to grobBoundingBoxes; change autoplay to use hook "before.plot.new".

Changes in Version 0.9-53

o updated to work with the new RGtk2 >= 2.20 (the return value of gtkWidgetGetAllocation() changed).

Changes in Version 0.9-52

o modifier keys when clicking were not working under Linux, it seems. Reported with a suggested fix by Raghav Puranmalka.

Changes in Version 0.9-51

o there were errors on startup with some types of plots (e.g. splom()), caused by trying to detect data types for time.mode = NA. Now uses try().

o playwith() failed when given a call with no arguments.

o adding row names and covariate values as labels was using the wrong one.

o adding labels to splom() now only adds one, rather than one for each panel.

Changes in Version 0.9-50

o implemented session history: playwith windows load and save history. (based on a suggestion from Liviu Andronic). See ?playwith.history

o row names and covariate values can now be added as labels (right-click).

o added support for sp package: SpatialPoints and SpatialPointsDataFrame.

o try as.data.frame() on the first call argument to get covariates.

o always turn off devAskNewPage, e.g. from demo(), because of redraws.

o fixed demo("clusterApp"), the parallel() function had stopped working.

o fixed showGrobsBB() and identifyGrob(), was not working for several types of grobs. Note: these will be moved to gridExtra package soon.

Changes in Version 0.9-45

o fixed mouse click events under Linux - was interpreted as Alt click when NumLock was active (thanks to Liviu Andronic and Trey Greer).

o 'autoplay' detects plots from Rcmdr (thanks to Liviu Andronic).

o playwith.options("time.mode") now defaults to NA, i.e. automatic. Its previous default was FALSE.

o "grob inspector" etc now pads bounding boxes, so it is possible to click on straight lines.

o eliminated "ignoring non-pairlist attributes" warnings.

o changed select.list() to the cross-platform menu() in autoplay.

Changes in Version 0.9-44

o Added a "Stop" action to interrupt plotting.

o Added 'preplot.actions' argument to playwith().

o A custom 'handler' function can be specified for 'parameters' widgets.

o Improved demo("clusterApp").

o Brushing a single data point (line) in a parallel plot now works.

o "Select from table" to identify points now works in more cases.

o New function identifyGrob(), returns names of clicked grid-objects.

Changes in Version 0.9-43

o Fixed bug that caused annotations outside the plot area to fail.

Changes in Version 0.9-42

o Fixed "protection stack overflow" triggered by resizing grid plots.

o "Full scale" tools now work with Lattice's "free" scales.

o Page annotations are now inside Lattice's toplevel viewport.

o Added a Theme menu for Lattice themes (moved out from Style menu).

Changes in Version 0.9-40

o Split Latticist out into a new package 'latticist'.

o Handles plots from the 'vcd' package without falling over.

o Detects pages of a Lattice plot when 'layout' arg is missing.

Changes in Version 0.9-32

o Select IDs from Table works correctly when columns are sorted.

o Latticist reorders factor levels again (when reorder = TRUE), and variable expressions involving "dat" have been fixed.

Changes in Version 0.9-31

o Latticist API abstracted into functions latticistParse() and latticistCompose(); the function latticist() is purely a GUI.

o Support for more plots via plotCoords and case.names methods.

o New tools "Pan" (scroll), "Line", "Rect".

o "Undo" is now available in more cases, and is part of the API.

o Changed some click actions and keyboard shortcuts.

o "Point / line style" dialog box.

o Labels menu: "Select from table" now implemented.

o Fixed initial window size.

o Editing text fields in "Plot Settings" is now detected even when is not pressed.

o Fixed occasional freeze-up of latticist.

o "Set axis labels..." button in Plot Settings (Lattice only).

o Zoom out applies to x-axis only in "time mode".

Changes in Version 0.9-21

o Fixed style shortcuts setting region$col palette.

o Fixed element 'update.action' in tool specification lists.

o Latticist: dodge bug in latticeExtra::marginal.plot().

Changes in Version 0.9-20

o Package overhaul! Menus, new tools, new infrastructure, etc. Note that playwith() arguments and playwith.options have changed.

o Plot Settings overhaul, allows scales and axes to be customised.

o latticeStyleGUI(), a stand-alone function to edit the lattice theme.

o latticist supports a depth variable (3D) and a color covariate. Also produces better plots with multiple categoricals.

Changes in Version 0.9-11

o latticist uses hexbinplot, and many other changes.

o playwith() now returns the playState object, not the plot result.

o revised and expanded all examples in help("playwith").

o common errors in playwith and latticist are caught and shown in a dialog box (unless playwith.options(catch.errors = FALSE)). On Linux this avoids killing R with "stack smashing detected".

o call history (back/forward buttons) works correctly.

o improved local cacheing of objects appearing in the plot call. now stores local functions as well as objects, and works better.

o re-used playwith windows are resized to account for toolbars etc.

o grob inspector tool allows removing grobs (but note bug in 'grid').

o fixed zooming with lattice categorical scales (again).

Changes in Version 0.9-10

o grob inspector tool (currently only shows str() of grobs).

o moved marginals() and c.trellis() into latticeExtra package.

o plot settings dialog now does not fail for lattice plots where scales="free".

o lattice theme selector now includes an option for custom.theme() from latticeExtra.

Changes in Version 0.9-9

o fix bug when tooltips are turned on: this runs the GTK Main Loop, and sometimes when the window was closed it was not stopped, freezing the R terminal.

o fix bug in parameter slider ("Invalid property value").

o make sliders and scrollbars update continuously (but constrained by plot redrawing), rather than only on mouse button release.

Changes in Version 0.9-8

o compatability with older versions of RGtk2.

o draw x scales in marginals().

Changes in Version 0.9-7

o click on plot makes a pop-up menu with labels for nearby points. Select one to add that label to the plot.

o clicks on plot avoid looking up data points unless neccessary.

o reorder factor levels only once in latticist(), which removes lots of ugly reorderByFreq() from the plot calls.

o latticist preloads some useful variable expressions and subsets.

o latticist converts integers with only 1 or 2 levels to factor.

o use shingle levels for labels in strips and on axes.

o latticist gives more error messages in dialog boxes.

o latticist passes labels argument to playwith(), which stops it from trying to guess labels from the plot call each time.

Changes in Version 0.9-6

o use of equal.count and cutEq in latticist.

o use of useOuterStrips and layout in latticist.

Changes in Version 0.9-5

o marginals()

o reorderByFreq()

o fix click-and-hold identify, to account for lattice subscripts.

o playGetIDs() now returns subscripts into original data from multi-panel lattice plots (was indexing data in each panel). (And the internal representation is now as lattice subscripts).

Changes in Version 0.9-4

o latticist!

o callArg gains a logical 'eval' argument.

o fix error when using a single argument that is a formula.

o fix error when identifying points with univariate lattice plots (e.g. data$x is NULL).

o remove effect of 'title' on choosing replacement device.

Changes in Version 0.9-3

o recognise un-named "data" argument to formula methods such as plot.formula, boxplot.formula.

Changes in Version 0.9-2

o tooltips show labels for points when click and hold mouse button.

o improvements to basic device mode (options(device="playwith")): preview button in annotation tool now works; and there is an "undo annotation" tool, allowing last annotation to be removed. (still some problems with mixing base and grid graphics).

o improved code for guessing xy coordinates and labels.

o improved code for guessing main function (assume "plot" if found).

Changes in Version 0.9-1

o cairoDevice package in Depends rather than Imports, since it sets options(device="Cairo"), which is bad if not attached!

Changes in Version 0.9-0

o user settings: playwith.options / playwith.getOption.

Changes in Version 0.8-57

o now works on Linux! (had problems related to event loop -- sizing widgets etc).

o new function playGetIDs() gives currently identified points.

o device size, rather than window size, can now be specifed. This matches other devices. Also pointsize can now be set.

o option to show tooltips for toolbar buttons (uses gtkMain()).

o mouse clicks better distinguished from drags: time <= 1/4 sec.

o xlim/ylim and time mode now handles date-time classes better, including "yearmon" and "yearqtr" from the zoo package.

o zooming now tries to account for axis padding.

o plot call is now deparsed without showAttributes option (for clarity). Call objects are used to maintain date time classes.

o "clear" button now shows a graphical dialog under linux.

o warning about lattice subscripts now checks the panelArgs (it was warning spuriously before, eg xyplot.zoo).

o more use of locks to try to avoid multi-thread conflicts.

o attempt to set GTK tooltips is now a silent try(), again.

o zoom and identify tools check par("mfrow") in case it is a multi-figure base graphics plot, and omit themselves if so.

Changes in Version 0.8-56

o arguments to parameters can use I() to force a spinbutton rather than slider.

Changes in Version 0.8-55

o argument parameters: automatically constructs widgets to control parameter values appearing in the call.

o default action when dragging on the plot is zoom. default action on right-click is zoomout.

o restrict zooming to x axis in time.mode only if a time.vector was not specified.

o whether to start in time.mode is determined by looking at the data: TRUE if the x data has a 'ts' or 'zoo' class.

o concept of the "main function" which accepts typical plot arguments (xlim, ylim, main, etc) -- not necessarily the top-level call. By default, a depth-first search is used to find a function that accepts xlim or ....

o use of relevant lattice plots without subscripts=TRUE will give a warning that identified points may be wrong.

o callArg() now uses standard evaluation by default, rather than quoting its argument. Old code will need to be changed!

o use RGtk2 rather than gWidgets for edit.call and edit.annotations because gWidgets is very slow.

o reasonable guess for data points and labels with ggplot::qplot()

o enabled pretty ggplot2 plots (print.ggplot with pretty=TRUE) if using grid package version >= 2.7 (older versions had a problem with viewports being popped).

o code reorganisation: split tools into separate files; ESS style.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.9-54 by Felix Andrews, 5 years ago


Browse source code at https://github.com/cran/playwith

Authors: Felix Andrews <felix@nfrac.org>

Documentation:   PDF Manual  

Task views: Graphic Displays & Dynamic Graphics & Graphic Devices & Visualization

GPL (>= 2) license

Imports RGtk2, gWidgets, gridBase, grDevices, graphics, stats, utils

Depends on lattice, cairoDevice, gWidgetsRGtk2, grid

Suggests latticist, zoo, MASS, ggplot2, sp

Suggested by RGraphics, rattle.

See at CRAN