9

Rで作業するときにEmacsにとどまるためにESSを使用しています。プロットを作成するたびに、グラフとともに新しいポップアップが表示されます。この新しいウィンドウは、Emacs 内で呼び出される R プロセスの一部のようです。そのため、新しいウィンドウはバッファリストの一部ではなく、Emacs 環境の外にあるように見えます。

たとえば、plot() によって呼び出されるグラフや ggplot2/lattice のそれぞれの関数を含む、R によって作成された新しいウィンドウを、強制的に Emacs 環境内にとどめることはできますか? プロットが新しいバッファとして利用できるようにします。

ありがとう!

4

5 に答える 5

9

ああ、それはできる...

ESS で、次の操作を行います。

png(file="tmp.png")
plot(1:10)
dev.off()
# [[tmp.png]]

何もない。ここで ESC X iimage-mode を実行します (はい、2 つの i があります)。

これにより、バッファーが iimage マイナー モードになり、[[tmp.png]] が検出され、そこにイメージが読み込まれます。これは簡単に自動化できるはずです。自分でこれを発見したのはこれが初めてなので、おそらくもっと良い方法があります。

これについて、明らかにESSリストでいくらかのおしゃべりがありました:

https://stat.ethz.ch/pipermail/ess-help/2009-August/005474.html

しかし、それがまだESSコアにないことに驚いています...

于 2011-02-19T21:57:37.017 に答える
3

いいえ、できません。Emacs バッファーはテキストです。グラフィックウィンドウはグラフィックデバイスです。

しかし、これは自分で行うことができます。プロットする前、またはセッションの開始時に、

pdf(file="/tmp/myplotfile.pdf")

そして今、プロットはそこに行きます。その後、Emacs で pdf ファイルを開くことができます。最近のバージョンには、Emacs 内に pdf プレビューが含まれています (少なくとも私の Linux boxen では、追加のモードが必要かどうかはわかりません)。それはあなたの要件に近づくでしょう。

于 2011-02-19T20:41:34.170 に答える
1

これを試して:

X11()   #  starts a X11 graphics device
plot(c(1:10),c(1:10))
savePlot(filename = "try_save_X11.png",type = c("png"))
于 2012-01-31T16:02:51.553 に答える