如何利用图形中的dev.copy r值?

时间:2013-07-08 21:30:42

标签: r gwidgets

我有一个带有区域ggraphics的gui,我想创建一个子窗口,其中图形在区域图形中处于活动状态,但dev.copy和svalue不起作用

options(guiToolkit = "RGtk2")
win<- gwindow ("window", width=1350,height=680,parent=c(1,1))
buttongraph<-gbutton("Click for enlarge graph",cont=win)
wingraphic<- ggraphics(cont=win)
hist(rnorm(100))
addHandlerChanged(buttongraph,handler=function(h,...){
subwin<- gwindow("subwin")
subwingraph<-ggraphics(cont=subwin)
svalue(wingraphic)
})

dev.copy(wingraphic)

1 个答案:

答案 0 :(得分:0)

调用svalue(wingraphic) <- "filename.png"尝试使用一些Gtk调用生成图形。它很脆弱,如果文件中的注释仍然准确,则需要发现设备。可能会为你工作,但可能不会。

ggraphics小部件只是cairoDevice的前端,它打开了一个新的图形设备。如果它是当前设备,则呼叫将为dev.copy(),而不是dev.copy(wingraphic),因为dev.copygWidgets个对象一无所知。如果您想获取给定ggraphics对象的设备,可以使用getToolkitWidget(g)$getData(".devnum")抓取它,但是您需要先加载RGtk2

如果您只想在当前设备上创建给定的ggraphics实例,则可以使用visible(subwingraph) <- TRUE执行此操作。