我有一个带有区域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)
答案 0 :(得分:0)
调用svalue(wingraphic) <- "filename.png"
尝试使用一些Gtk调用生成图形。它很脆弱,如果文件中的注释仍然准确,则需要发现设备。可能会为你工作,但可能不会。
ggraphics小部件只是cairoDevice
的前端,它打开了一个新的图形设备。如果它是当前设备,则呼叫将为dev.copy()
,而不是dev.copy(wingraphic)
,因为dev.copy
对gWidgets
个对象一无所知。如果您想获取给定ggraphics
对象的设备,可以使用getToolkitWidget(g)$getData(".devnum")
抓取它,但是您需要先加载RGtk2
。
如果您只想在当前设备上创建给定的ggraphics
实例,则可以使用visible(subwingraph) <- TRUE
执行此操作。