2017-12-19 6 views
1

私はrmarkdownを初めて使用しています。新しいウィンドウで通常作成されるプロットを表示したいと思います。このプロットは、plot.new()およびdev.new()を使用して新しいウィンドウに表示し、そのウィンドウに複数のプロットを追加する関数から呼び出されます。 これをレポートに戻すにはどうすればよいですか?新しいウィンドウのプロットをRmarkdownのプロット表示

次のプロットを返さない...

```{r fig.keep='all', fig.width=10, fig.height=5} 

Draw_matrix_plots(data) 

``` 

と新しいウィンドウで4つのプロット描く私が呼び出していた機能スケルトン:

Draw_matrix_plots <- function(data){ 
    plot.new() 
    dev.new(width=7, height=8) 
    layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE),heights=c(3,3)) 
    hist(data$A) 
    hist(data$B) 
    hist(data$C) 
    hist(data$D) 
} 

を感謝

+0

こんにちは、これはカスタム機能ですか?またはパッケージから来るいくつかの例?いくつかのグラフィカルオブジェクト(ggplot)では、printを使うことができます。私はあなたが 'grDevices :: savePlot(" myplot.png "、type =" png ")'を使ってプロットを保存してから、\ includegraphicsを使ってそれを呼び出すことができます。どのようにインクルードするかについての[例](https://stackoverflow.com/questions/46920038/how-to-get-figure-floated-surrounded-by-text-etc-in-r-markdown/46962362#46962362)フォルダの1つに保存された図。 – Cedric

+0

マークダウンの簡単な方法は次のとおりです。https://stackoverflow.com/questions/10517020/how-to-import-local-image-using-knitr-for-markdown – Cedric

+0

はい、通常は自分のデータと新しいウィンドウでいくつかのプロットを一緒にします。私はむしろPNG形式(可能であれば)として保存するのではなく、通常はメインウィンドウの1つのプロットで行うように表示します。関数のスケルトンを示すために質問を編集しました。お返事ありがとう –

答えて

0

私はあなたがdev.new()を必要としないと思う、次のコード生成

--- 
title: "Test" 
ouptut: pdf_document 
--- 

# R code 

```{r fig.keep='all', fig.width=10, fig.height=5} 
Draw_matrix_plots <- function(){ 
    layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE),heights=c(3,3)) 
    hist(rnorm(100)) 
    hist(rnorm(100)) 
    hist(rnorm(100)) 
    hist(rnorm(100)) 
} 
Draw_matrix_plots() 

``` 

test 数字が/ figureフォルダに作成されていることを確認できます。私は出力としてhtml_documentと同じです。それは役に立ちますか?

+0

ありがとうございます。すべてのオプションはうまくいきますし、大きな助けになります。最初に画像として保存するか、dev.newを削除してください。彼らはどちらも動作します。理想的には、私はワークスペースウィンドウではなく新しいウィンドウをキャプチャしたいと思っています:/。私のコードを使用するときは、すべての関数呼び出しの前にnew.devを追加する必要があります...または、私の関数にdev.newを入れるのは悪い習慣ですか?また、私が持っていたプロットのために、新しい画像のリストに空白のグラフィックが追加されます。/ –

+0

plot.defaultを呼び出すと、最初に 'plot.new()'または 'frame()'を呼び出します。関数。これはあなたがいるプロットデバイスを完成させ、グラフィックスデバイスを新しいグラフィックフレームに進めます。だから、基本的にほとんどの場合、Rがそれを処理し、dev.new()は必要ありません。 [knitrは何をする](https://github.com/yihui/knitr/releases/download/doc/knitr-manual.pdf)は、プロットがあればコード内でテストし、画像として保存することです(ちょうど手動で行っています)。チャンクの 'dev'オプションは、どのタイプのグラフィックデバイスを開くかを選択することを可能にします。 – Cedric

+1

最後に私の機能でdev.newを削除しました。結果を通常のRスタジオウィンドウの外にしたい場合は、手動でそれを伝える必要があります。私はそれらを比較するために開いた複数のウィンドウを持っていることに慣れていますが、私はいつも手動で行うことも、rstudioの矢印で左または右に行くこともできます。この方法でKnitrにとってはうまくいきますし、実際にはより良い方法かもしれません。誰かが通り過ぎて新しいウィンドウからそれを抽出するソリューションを持っている場合は、答えを追加するために自由に記入してください:)。今のところ私はこの答えがいいです。ありがとう:: thumb_up :: –

関連する問題