21

ReporteRs現在、次のように、優れたパッケージを使用して、常に R グラフをベクトル形式で Powerpoint にエクスポートします。

library(ReporteRs)
myplot = function() print(qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7)))
doc = pptx()
doc = addSlide(doc, slide.layout = "Blank") 
doc = addPlot( doc, myplot, vector.graphic = TRUE, fontname="Arial",
               offx = 0.1*dim(doc)$slide.dim["width"], offy = 0.05*dim(doc)$slide.dim["height"], 
               width = 0.8*dim(doc)$slide.dim["width"], height = 0.9*dim(doc)$slide.dim["height"])
writeDoc( doc, "plot.pptx") 

ここに画像の説明を入力

このワークフローで不便だと思うのは、プロット コマンドを関数 ( print()forlatticeまたはggplot2plots、またはreturn(plot())ベース R プロットのみ) でラップする必要があり、オフセットとサイズを手動で指定する必要がないことです (私は通常、スライドの中央に配置されたほぼページいっぱいのグラフを取得することを好みます)。lattice代わりに、最初にプロット (ベース R プロット、プロット、またはプロット) を作成してから、現在のグラフィックス デバイスの出力を関数としてキャプチャし、それを相互に渡す関数をggplot2定義することができないのではないかと思っていました。PDFにエクスポートするのと同じように機能する関数と同様に、プロットをPowerpoint(中央に配置して適切にスケーリング)としてエクスポートしますか?export2PPTReporteRsaddPlotdev.copy2pdf

そして、そのような関数ができたら、windows() および savePlot()関数のソース コードを変更しgrDevicesて、デバイスを使用している場合は File...Save as Powerpoint というコマンドを追加しますか? それとも、これは R コアの人々が行うことですか?windows()

特に教室で使用する場合、MS Office/LibreOffice が優勢であることを考えると、これは非常に便利だと思います。(Powerpoint は PDF よりも編集がはるかに簡単で、R グラフの最終的なレイアウトに小さな変更を簡単に加えることができ、ベクトル出力は少なくとも PDF と同じくらい優れており、さらに透過性も完全にサポートされているため、PDF の場合、そのインポートが見つかりました。 Adobe Illustrator を使用しない限り、Inkscape では少しバグがあることがよくあります)。

これを行う方法を知っている人はいますか?

編集: その間、私は解決策を見つけ、エクスポート関数をラップして、現在アクティブな R プロットを CRAN のパッケージのパワーポイントにエクスポートしました 。https: //cran.r-project.org/web/packages/export/index を参照してください。デモ用の.htmlおよび https://github.com/tomwenseleers/export 。ReporteRs が廃止されたため、パッケージはオフィサー パッケージをバックエンドとして使用するようになりました...

4

2 に答える 2

1

CRANでも利用できるeofficeパッケージを試すことができます。

于 2020-06-18T03:10:05.077 に答える