0

ボタン付きの 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 のウィンドウに表示されます。

なぜこれが起こっているのか誰にも示唆できますか?

4

1 に答える 1

0

関数からではなく R コンソールから機能する理由は、print()他に何も指定されていない場合、R コンソールが自動的に起動するためです。関数内では 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)))
于 2013-04-26T17:29:00.317 に答える