[R-gui] Drawing on embedded RGtk2 plotting area with Cairo
N K
lists at exposurescience.org
Thu Apr 15 09:25:47 CEST 2010
Hi,
I'm trying to draw some crosshairs and floating X,Y coordinates in a
text box that follow the mouse cursor around on an embedded R plotting
area (asCairoDevice). i.e., I want to have Cairo line and text
objects that are updated whenever the mouse moves over an R plot.
I used the commands below but the text flickers, like it is being erased
immediately after being drawn. Has anyone solved this problem or
have some pointers, demos, examples, etc? Is there some limitation
with the R Cairo device that prevents user interaction like this?
Before calling asCairoDevice I can draw on the gtk drawing area, but not
after. Any help appreciated!
plotArea <- gtkDrawingArea()
gtkWidgetSetSizeRequest(plotArea, 300, 400)
# Receive mouse events....
gtkWidgetAddEvents(plotArea, 2)
asCairoDevice(plotArea)
gtkWidgetShow(plotArea)
plotArea$AddCallback("motion-notify-event", function(w,ev) {
x <- ev$x
y <- ev$y
cr$moveTo(x,y)
coor <- win2plot(x, y) # Note this converts from screen to
user coordinates
cr$showText(paste(coor[1],coor[2], sep=", "))
})
cr <- gdkCairoCreate(plotArea$window)
plot(1:10)
--Neil
More information about the R-SIG-GUI
mailing list