7

毎日のRインタラクションを単純化するために、すべてのプロットにデフォルトの色を設定したいと思います。たとえば、すべてのプロットを赤い線で作成したいとします(gnuplotのように... :-))

これまでのところ、これが私の.Rprofileのスニペットです

setHook(packageEvent("grDevices", "onLoad"), 
    function(...) 
        grDevices::X11.options(width = 14, height = 8, type = "Xlib", xpos = 600,     ypos = 30, canvas = "grey87"))

suppressPackageStartupMessages( require(Defaults) )
suppressPackageStartupMessages( require(utils) )
suppressPackageStartupMessages( require(graphics) )

setDefaults("plot.default",frame.plot=FALSE, type='l', col=2)

ここで行うことは次のとおりです。grDevicesパッケージがロードされると(パッケージをロードすることによりgraphics)、好みのパラメーターを使用してを呼び出しX11.optionsます:幅の広いボックス、明るい灰色の背景、xlib呼び出し(遠隔呼び出しを行っているため、およびcairo in私の現在の環境は遅すぎます(解決するための別の問題))次に、3つのパッケージ、、、およびをサイレントにロードDefaultsutilsますgraphicsfind2つ目は、関数のエラーメッセージを回避するために必要です。

最後に、魔法の関数setDefaultsは散布図関数に3つのパラメーターを設定しますplot.default。3番目のパラメーターは、関数colのパラメーターではなく、関数plot.defaultからのパラメーターですpar()

ただし、でsetDefaults電話をかけることparもできません。

どんな解決策も歓迎します...

4

2 に答える 2

7

"plot.new"フックを使用してpar、新しいグラフィックフレームが開かれるたびにデフォルト値を設定できます。(フックの動作はとに文書化され?plot.newています?setHook

あなたの場合、この行を.Rprofileに追加するだけです。

setHook("plot.new", function() par(col = "red"))
于 2012-09-27T20:07:23.793 に答える
3

色などのパラメータはデバイスごとに設定されるため、1つのデバイスを閉じて新しいデバイスを作成すると、すべてのパラメータがデフォルト値に戻されます。これを行うには、デバイスを開いてパラメータを設定する独自のデバイス関数を作成します。次のようになります。

mydev.new <- function(...) {
  dev.new(...)
  par(col='red')
}

dev.new明らかに他のものに置き換えることができx11ますが、これはおそらく最もポータブルです。これで、を使用して新しいデバイスを開くことができmydev.new、デフォルトの色が赤に設定されます。

さらに、コマンドを実行すると

options(device=mydev.new)

次に、グラフィックデバイスを開いておらず、プロットコマンドを実行すると、関数は新しいプロットデバイスを開くための1回の実行になるため、その場合もデフォルトは赤になります。mydev.new関数(または呼び出したいもの)を拡張して、他のオプションを設定したり、引数をとったりすることができます。

于 2012-09-27T19:01:18.137 に答える