7

IDEの暗い背景のカラーテーマに明るいテキストを使用することを好むことがよくあります。Rで何かをプロットすると、プロットのデフォルトの配色は、白い背景に黒いテキスト/境界線/ポイントになります。私はこれをデフォルトで変更しようとしていましたが、できればデフォルトでRから呼び出された特定のデバイス(X11cairo、 )で、やRStudioGDなどの「出力」デバイスの通常のデフォルトを維持しました。pdfpng

私の質問は2つあります:(1)デフォルトのグラフィカルパラメータを設定するにはどうすればよいですか?(2)これを特定のデバイスに対してのみ実行できますか?

たとえば、現在のデバイスの配色を次のように簡単に設定できますpar

par(
  bg = "black",
  col = "white",
  col.axis = "white",
  col.lab = "white",
  col.main = "white",
  col.sub = "white")

plot(1)

期待どおりに白地に黒のプロットを作成し、期待どおりにデバイスをリセットするとデフォルトに戻ります。

dev.off()
plot(1)

私は自分の中に次のものを入れてみました.Rprofile

graphics:::par(
  bg = "black",
  col = "white",
  col.axis = "white",
  col.lab = "white",
  col.main = "white",
  col.sub = "white")
graphics:::plot(1,type="n",xlab="",ylab="",axes=FALSE)
graphics:::text(1,1,"Plotting area")

これは多少機能しますが、起動時にプロットウィンドウが開き、少し煩わしい場合があります。RStudioでは、RStudioデバイスではなくx11ウィンドウが開きます。また、そのウィンドウを閉じると、パラメータが再びリセットされます。たとえば、RStudioのデフォルトのデバイスでプロットウィンドウを開くたびに、この「配色」をデフォルトで使用できるようにしたいと思います。

4

2 に答える 2

4

グラフィックスパラメータはデバイスの存続期間中持続します。そのため、グラフィックスデバイスを閉じて新しいプロットを開始すると、パラメータがリセットされます。

おそらく、実行したいことに対する最善のアプローチは、デフォルトを変更したいデバイスのラッパー関数を作成することです。この関数は、対象のデバイスを起動し、デフォルトのパラメーターを設定します。次に、カスタム関数options(device=mygrdevice)がどこにあるかを使用して、関数をデフォルトのデバイスとして設定できます。mygrdevice次に、開いているデバイスがなく、プロットコマンドを発行すると、関数が実行され、デバイスを開いてデフォルトを設定します。ただし、pdfやpngなどの別のデバイスを開くと、通常のデフォルトが適用されます。

プロット時に実行するフック関数を設定するために使用することもできますがsetHook、どのデバイスが最新であるかを確認することは、おそらくそれが価値があるよりも多くの作業になります。プロットデバイスの起動時にフックを使用できる場合は、それがより適切なオプションである可能性があります。

于 2012-11-20T19:25:09.093 に答える
0

少なくともRStudioデバイスについては自分で答えを思いついたのですが、それは一種の厄介なハックです。デバイスの機能を上書きして、開いた直後に設定.Rprofileを変更できます。par

RStudioGD <- function()
{
  .Call("rs_createGD")
  graphics:::par(
       bg = "black",
       col = "white",
       col.axis = "white",
       col.lab = "white",
       col.main = "white",
       col.sub = "white")
}

しかし、これは実際にはこれを行うための最も適切な方法ではないようですか?

于 2012-11-20T15:00:47.513 に答える