2012-10-05 165 views
6

我在與來自R導出EPS文件,並導入到Word 2010的[R EPS導出和導入到Word 2010

我使用ggplot2地塊麻煩,如

library(ggplot2) 
p <- qplot(disp,hp,data=mtcars) + stat_smooth() 
p 

甚至稱後setEPS()以下任何一項都不能生成可成功導入的文件。

ggsave("plot.eps") 

postscript("plot.eps") 
print(p) 
dev.off() 

奇怪的是,如果我使用產生的File情節 - >Save As - >Postscript從GUI菜單,就可以正確導入。但是,當Word文檔隨後以PDF格式導出時,圖形中的字體有點鋸齒。

所以我的問題是:

  • 什麼組合(ggsave/postscript)設置,使我產生可以導入到Word 2010的EPS文件?
  • 如何確保在將Word文檔導出爲pdf時字體保持清晰?

更新

經過調查中,我有更多的運氣cairo_ps生產地塊。但是,導入到Word中時不顯示任何文本。

此外,在檢查乳膠文檔中的各種eps輸出(cairo_ps,保存在GUI中,ggsave)後,似乎Word中的eps導入篩選器相當差,因爲print/pdf輸出與質量不匹配的膠乳文件。 ggsave版本(使用postscript)確實存在一些其他兩種方法沒有的顏色問題。

結論是,這是一個Word問題,因此fortune(109)不適用。我很樂意被證明,但我會把答案和獎金授予誰可以提供命令的人,這些命令可以通過命令形式複製GUI的輸出。

+0

也許這是一個Word 2007+的問題:「[無法使用EPS圖形在Word 2007,並作出PDF](HTTP://論壇.adobe.com /線程/ 439881)「。 –

回答

4

這個工作對我來說...在postscript幫助頁面以下建議:

postscript("RPlot.eps", height = 4, width = 4, horizontal = FALSE, onefile = FALSE, 
      paper = "special") 
library(ggplot2) 
p <- qplot(disp,hp,data=mtcars) + stat_smooth() 
p 
#geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to #change the smoothing method. 
#Warning message: 
#In grid.Call.graphics(L_polygon, x$x, x$y, index) : 
# semi-transparency is not supported on this device: reported only once per page 
dev.off() 
#quartz 
#  2 

末的有趣的東西讓你的通知,這只是一臺Mac測試的解決方案,到目前爲止反正。我試用了R版本2.15.1(2012-06-22) - 「烤棉花糖」:平臺:i386-pc-mingw32/i386(32位)和MS Word 2007在Win XP和它的工作。命令是插入/圖片... /選擇eps格式/選擇文件。

編輯2:除了直接使用postscript設備還有另一種方法來保存。 Windows中提供了"eps"模式的savePlot方法(但不是在Mac中)。我同意字體不像Mac上顯示的那樣流暢,但我可以在使用savePlot進行保存和使用交互式窗口中的另存爲之間區別質量。

savePlot(filename = "Rplot2", type = "eps", device = dev.cur(), restoreConsole = TRUE) 

savePlot電話(.External(CsavePlot, device, filename, type, restoreConsole))

+0

我認爲' setEPS()'全局設置這些選項。無論如何,它在Windows上仍然不適用於我。 – James

+0

它僅在某些查看模式中顯示。但這是一個Word問題,而不是一個R問題。 –

+0

'savePlot'看起來像答案,但它具有比其他方法更少的靈活性。是的,我同意並始終知道,Word是問題所在 - 它比全國OCD會議上的昆蟲學突破會議還有更多的怪癖和錯誤!無論如何,布拉沃!滴答和賞金是你的。 – James

1

您可能更喜歡使用wmf作爲您可以在Windows上創建的格式。

+0

不一定,wmf格式也會有點小問題。我認爲在R-wiki上有一個關於將圖形輸出到MS Office的很好的參考,但是我找不到它。 –

+1

嗯,我的_real_建議當然不會碰到Word,但不是每個人都可以逃脫到膠乳/ sweave/knitr/rmd/...這就是說,當我不得不使用它時,wmf是最不痛苦的選項。 –

+0

我通常使用可笑的高分辨率PNG(存儲大小不會嚴重縮放)獲得最佳運氣,然後可以在Office文檔中適當調整大小。唯一的訣竅是保持「物理尺寸」(字體縮放,cex等)不變,同時提高分辨率。 –

0

均可以使用工作室針織與所有的情節,然後打開HTML文件與Word的HTML文件。

knitr tutorial

+0

自HTML何時支持Word的EPS支持SVG? – mlt

+0

我沒有說任何關於EPS的事情。我只是想說一個簡單的方法來讓你的圖表進入Word。 – jem77bfp

4

我解決了這個問題,來自R出口.EPS文件,並使用postscript命令的colormodel="rgb"選項(默認爲"srgb")導入到Word 2010在Windows 7上。

postscript("RPlot.eps", height = 4, width = 4, horizontal = FALSE, 
     paper = "special", colormodel = "rgb") 
library(ggplot2) 
p <- qplot(disp,hp,data=mtcars) + stat_smooth(se=FALSE, method="loess") 
p 
dev.off() 
1

Word確實不太支持EPS。所述best solution I've seen so far使ř圖(基礎R圖,晶格圖或ggplots)與Office(的Word,PowerPoint)一起工作是將它們直接使用包ReporteRs,導出到投影片如

library(ReporteRs) 
require(ggplot2) 
mydoc = pptx() 
mydoc = addSlide(mydoc, slide.layout = "Title and Content") 
mydoc = addTitle(mydoc, "Plot examples") 
myplot = qplot(Sepal.Length, Petal.Length 
       , data = iris, color = Species 
       , size = Petal.Width, alpha = I(0.7) 
) 
mydoc = addPlot(mydoc, function() print(myplot), vector.graphic=TRUE) 
writeDoc(mydoc, file = "test plot.pptx") 

enter image description here

這導致了一個完全可編輯的,高質量的Powerpoint圖形,以原生Office矢量爲基礎的DrawingML格式,如果您願意,您也可以隨時複製&粘貼作爲增強型圖元文件(使用Copy ... Paste special ... Enhanced metafile),與從R出口的EMF不同,它也完全支持透明度。對於最終產品,如果需要,您也可以輕鬆地將其打印到PDF格式的PDF中,並且它將保持良好的矢量格式,並且質量良好。

對於基礎R情節語法是:

library(ReporteRs) 
mydoc = pptx() 
mydoc = addSlide(mydoc, slide.layout = "Title and Content") 
mydoc = addTitle(mydoc, "") 
myplot = function() {return(plot(c(1:100), c(1:100), pch=20))} 
mydoc = addPlot(mydoc, fun=myplot, vector.graphic=TRUE, offx=0,offy=0,width=12, height=8, fontname="Calibri", pointsize=20) 
writeDoc(mydoc, file = "test plot2.pptx")