最小限例:私はこれらのコードをラップするとき、しかしを開くことができませんRMarkdownにプロットするための装置(例えば、PNG)ではなく、Rスクリプト
png("test.png")
dev.cur() #quartz_off_screen 2
plot(1:10)
dev.off() #null device 1, file "test.png" generated in getwd()
:
は次Rスクリプトが正しい出力を提供します
```{r}
png("test.png")
dev.cur() #null device 1
plot(1:10)#plot appears inline in the editor's pane
dev.off() #Error in dev.off() : cannot shut down device 1 (the null device)
# file "test.png" not generated
```
同じコードが正常に動作して:私はコンソールに彼らにライン・バイ・ラインを送信する場合、Rマークダウンチャンクに、そして、私は次のような結果を得ます行ごとにではなく、現在実行されているチャンク機能を使用している場合に、期待されるファイルを生成します。
プロット関数に遭遇したときにRstudioが内部的に "dev.new()"を呼び出すように見えるので、すべてのプロット出力をエディタのペインに送ることができます。
これはRstudioで設計されたもので、他のユーザーがこの動作が直感的でないかどうかは疑問です.pngデバイスを開くことができないという問題の原因を見つけるのにかなり時間がかかりました。私はやっているようにプロットを出力します。
ほとんどの場合、ggplot graphs + ggsaveはrmarkdownでpngとdevを使用するよりも優れたソリューションです。 – YCR
私はエラーを再現できません、それは私のために働く。 ニットを実行する前にすべてのプロットウィンドウが閉じられていますか? – YCR
はい。 Macbook Pro(Rバージョン3.3.2、OS X Yosemite 10.10.5)でエラーを再現できます。私がやったのは、新しいRセッションを開始し、新しいRマークダウンファイルを作成し、上記のようにスクリプトを入れて、コンソールに行ごとに送信することでした。私がチャンク全体を実行すると、問題は*発生していないことに注意してください。 –