R экспорт и импорт eps в Word 2010

у меня возникли проблемы с экспортом файлов eps из R и импортом в 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) настройки позволяют мне создавать файлы eps, которые могут быть импортированы в Word 2010?
  • как я могу гарантировать, что шрифты остаются ясными, когда документ Word экспортируется в формате pdf?

обновление

после большего расследования мне больше повезло с cairo_ps для того чтобы произвести сюжет. Однако при импорте в Word текст не отображается.

Furthermore, после проверять различные выходы eps (cairo_ps, сохранить из GUI,ggsave) в документе latex кажется, что фильтр импорта eps в Word довольно плохой, поскольку вывод printed/pdf не соответствует качеству документа latex. The ggsave версию (которая использует postscript) были некоторые проблемы с цветами, которые другие два метода не имели, хотя.

вывод заключается в том, что это проблема слова и поэтому fortune(109) не относится. Я был бы рад, если бы было доказано обратное, но я присужду ответ и награду тому, кто может предоставить команды, которые могут реплицировать вывод из GUI в командной форме.

5 ответов


это работает для меня... следуя совету в 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-тестирование решения, до сих пор в любом случае.

Edit: я только что протестировал его с R версии 2.15.1 (2012-06-22) -- "жареный зефир": платформа: i386-pc-mingw32/i386 (32-бит) и MS Word 2007 в Win XP, и это сработало. Команды были Insert / Picture.../ выберите формат eps / выберите файл.

Edit2: есть еще один способ сохранения кроме непосредственно с помощью устройства postscript. Метод savePlot с "eps" режим доступен в Windows (но не в Mac). Я согласен, что шрифты не такие гладкие, как на Mac, но я не вижу разницы в качестве между сохранением с помощью savePlot и использованием save as из интерактивного окна.

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

savePlot звонки (.External(CsavePlot, device, filename, type, restoreConsole))


Я решил проблему с экспортом .файлы eps из R и импорт в Word 2010 в Windows 7 с помощью (по умолчанию:"srgb") из .

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()

вы, вероятно, лучше использовать wmf как формат, который вы можете создать в Windows.


слово действительно не поддерживает EPS очень хорошо. The лучшее решение, которое я видел до сих пор чтобы сделать R-графики (базовые R-графики, решетчатые графики или ggplots) работать вместе с Office (Word, Powerpoint), чтобы экспортировать их непосредственно в 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 график в родном офисе векторного формата DrawingML, который вы также можете легко скопировать и вставить как расширенный метафайл, если хотите (используя Copy...Специальная вставка...Расширенный метафайл), и который в отличие от EMFs, экспортируемых из R, также полностью поддерживает прозрачность. Для окончательного производства вы также можете легко распечатать его в PDF из Powerpoint, если это необходимо, и он останется в векторном формате, а затем в хорошем качестве.

для базового 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" )

вы можете использовать R studio для вязания html-файлов со всеми вашими участками, а затем открывать HTML-файлы с помощью Word.

knitr учебник