用gWidgetstcltk绘图

时间:2013-03-21 00:50:58

标签: r graphics plot gwidgets

我用一个按钮制作了一个gui,其处理程序执行我制作的类的绘图方法,它在正常的R会话中使用ggplot2和grid / gridExtra来组合绘图。使用控制台中的plot()函数可以正常工作。我的按钮/处理程序如下:

Plotbutton <- gbutton("Plot!", container=MainWindow,
                  handler=function(h,...){
                    plot(analysis, linesplot=svalue(linecheck), lineplot.legend=svalue(linelegcheck), baseannotate=svalue(bpcheck), bpfreq=as.numeric(svalue(bpspin)), mosaic.bars=svalue(mosaiccheck), mosaic.scale=as.numeric(svalue(mosaicspin)), combine.plots=svalue(combinecheck), condense.mosaics=svalue(condensecheck), labfontsize=as.numeric(svalue(fontspin1)), legfontsize=as.numeric(svalue(fontspin2)))
                  })

我不确定原因,但加载gWidgets,gWidgetstcltk和我的绘图方法所需的包,然后单击按钮,没有任何内容绘制到R图形环境,但是在RStudio中,绘图面板不是更新,直到退出GUI。该图形确实出现在普通Windows RGui的窗口中。

有谁能说明为什么会这样?

1 个答案:

答案 0 :(得分:0)

它从R-console而不是函数运行的原因是如果没有其他说明,R-console将自动调用print()。在函数R中不执行此操作,因此如果要打印图形,则必须明确指出print(graph)。试试

print(plot(analysis, linesplot=svalue(linecheck), lineplot.legend=svalue(linelegcheck), baseannotate=svalue(bpcheck), bpfreq=as.numeric(svalue(bpspin)), mosaic.bars=svalue(mosaiccheck), mosaic.scale=as.numeric(svalue(mosaicspin)), combine.plots=svalue(combinecheck), condense.mosaics=svalue(condensecheck), labfontsize=as.numeric(svalue(fontspin1)), legfontsize=as.numeric(svalue(fontspin2)))