2012-10-05 17 views
6

Mam problemy z eksportowania plików EPS z R i importowanie do programu Word 2010.R eps eksport i import do programu Word 2010

Używam ggplot2 działek, np

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

Nawet po wywołaniu setEPS() żadne z poniższych nie tworzy plików, które można pomyślnie zaimportować.

ggsave("plot.eps") 

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

Najdziwniejsze jest to, że jeśli będę produkować działkę przy użyciu File ->Save As ->Postscript z menu w GUI, może być importowany poprawnie. Jednakże, gdy dokument Word jest następnie eksportowany jako plik pdf, czcionki na grafice są trochę postrzępione.

Więc moje pytania to:

  • Co kombinacja (ggsave/postscript) Ustawienia pozwala mi produkować pliki EPS, które mogą być importowane do programu Word 2010?
  • Jak zapewnić, że czcionki pozostaną czyste, gdy dokument Word zostanie wyeksportowany jako plik pdf?

Aktualizacja

Po więcej dochodzenia miałem więcej szczęścia z cairo_ps produkować działek. Jednak żaden tekst nie pojawia się po zaimportowaniu do programu Word.

Ponadto, po sprawdzeniu różnych wyjść eps (cairo_ps, zapisz z GUI, ggsave) w dokumencie lateksu, wygląda na to, że filtr importu eps w programie Word jest dość słaby, ponieważ wydruk/plik PDF nie pasuje do jakości dokumentu latex'd. Wersja ggsave (która używa postscript) miała pewne problemy z kolorami, które nie miały dwóch pozostałych metod.

Wniosek jest taki, że jest to problem dotyczący programu Word i dlatego nie ma zastosowania fortune(109). Byłbym szczęśliwy, gdyby udowodniono, że jest inaczej, ale nagrodzę odpowiedź i nagrodę każdemu, kto może dostarczyć polecenia, które mogą replikować dane wyjściowe z GUI w postaci polecenia.

+0

Prawdopodobnie jest to Słowo 2007+ problem: „[Niemożność korzystania eps grafiki w programie Word 2007 i zrobić pdf] (http: // forum .adobe.com/thread/439881). " –

Odpowiedz

4

Ten pracował dla mnie ... po porady na stronie postscript pomocy:

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 

Zabawne rzeczy na końcu stawia się na ogłoszeniu, że jest to tylko Mac sprawdzone rozwiązanie, tak daleko i tak.

Edycja: Właśnie testowałem to z R wersji 2.15.1 (2012-06-22) - "Palone pianki": Platforma: i386-pc-mingw32/i386 (32-bit) i MS Word 2007 w Win XP i zadziałało. Polecenia to Insert/Picture .../select eps format/select file.

Edycja2: Istnieje inna metoda zapisu oprócz bezpośredniego użycia urządzenia postscriptowego. Metoda savePlot w trybie "eps" jest dostępna w systemie Windows (ale nie na Macu). Zgadzam się, że czcionki nie są tak gładkie, jak na Macu, ale nie widzę różnicy w jakości pomiędzy zapisywaniem z savePlot i używaniem zapisu z interaktywnego okna.

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

savePlot rozmowy (.External(CsavePlot, device, filename, type, restoreConsole))

+0

Myślę, że ' setEPS() 'ustawia te opcje globalnie. W każdym razie nadal nie działa dla mnie w systemie Windows. – James

+0

Wyświetla się tylko w niektórych trybach wyświetlania. Ale to jest problem z Wordem, a nie R. –

+0

'savePlot' wygląda jak odpowiedź, ale ma mniejszą elastyczność niż inne metody. Tak, zgadzam się i zawsze wiedziałem naprawdę, że Word jest problemem - ma więcej dziwactw i błędów niż sesja przełamania entomologii na krajowej konferencji OCD! W każdym razie, Bravo! Tik i bounty są twoje. – James

1

Prawdopodobnie lepiej użyć formatu wmf jako formatu, który można utworzyć w systemie Windows.

+0

niekoniecznie, format wmf może być trochę glitchy też. Pomyślałem, że istnieje dobre odniesienie do eksportu grafiki do MS Office na R-wiki, ale nie mogę go znaleźć. –

+1

Cóż, moja rada jest oczywiście nie dotykać w ogóle Słowa, ale nie każdy może uciec na lateks/sweave/knitr/rmd/... To powiedziawszy, kiedy musiałem go używać w przeszłości, wmf było najmniej bolesne opcja. –

+0

Zwykle miałem najlepsze szczęście dzięki niedorzecznie wysokiej rozdzielczości plikom PNG (rozmiar pamięci nie skaluje się tak źle), które można odpowiednio zmienić w dokumencie pakietu Office. Jedyną sztuczką jest utrzymywanie stałego rozmiaru "fizycznego" (skalowanie czcionek, cex itd.) Przy jednoczesnym zwiększaniu rozdzielczości. –

0

Można użyć R studio na drutach pliki html ze wszystkich działek, a następnie otwartych plików HTML w programie Word.

knitr tutorial

+0

Od kiedy to HTML obsługuje EPS Worda obsługującego SVG? – mlt

+0

Nie mówiłem nic o EPS. Mówiłem tylko o łatwym sposobie wprowadzenia wykresów do programu Word. – jem77bfp

4

I rozwiązać problem z eksportowania plików .eps z R i importowanie do programu Word 2010 na Windows 7 przy użyciu opcji colormodel="rgb" (domyślnie "srgb") dowodzenia w postscript.

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 rzeczywiście nie obsługuje bardzo dobrze EPS. best solution I've seen so far aby wykresy R (działek zasady R, działki kratowe lub ggplots) współpracować z Office (Word, PowerPoint) jest je eksportować bezpośrednio do Powerpoint przy użyciu pakietu ReporteRs, jak w

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

Powoduje to w pełni edytowalny, wysokiej jakości wykres Powerpoint w natywnym formacie DrawingML opartym na wektorze wektorowym, który można również z łatwością wkleić w postaci ulepszonego metapliku, jeśli chcesz (używając polecenia Kopiuj ... Wklej specjalnie ... Rozszerzony metaplik), i które w odróżnieniu od EMF wyeksportowanych z R również w pełni popiera przejrzystość. Do ostatecznej produkcji można również łatwo wydrukować go do PDF z Powerpoint, jeśli zajdzie taka potrzeba, i pozostanie ładnie w formacie wektorowym, a następnie w dobrej jakości.

Na działce baza R składnia byłoby:

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") 
Powiązane problemy