W R jaki jest najlepszy sterownik grafiki do używania wykresów w Microsoft Word?

10

Używam R, aby tworzyć czyste wykresy, których używam w dokumentach Microsoft Office. Według tej strony najlepszą jakość uzyskuje się ze sterownikiem PDF. Niestety, Word nie obsługuje importowania danych PDF. Czego powinienem użyć?

static_rtti
źródło
1
Możesz wstawiać dane PDF do Worda. Użyj „Wstaw obiekt”. Uwaga dodatkowa: Jeśli nigdy wcześniej nie korzystałeś z LaTeX, zdecydowanie polecam wypróbowanie go jako alternatywy dla MS Word.
mark999
1
@ mark999: Dziękujemy za sugestię. Próbowałem, ale niestety nie mogłem uzyskać nic lepszego niż ikonę pdf w dokumencie. W tym kontekście muszę używać programu Word, ponieważ pracuję z innymi osobami korzystającymi z programu Word. LaTeX jest fajny, ale nie dla każdego projektu lub dla wszystkich.
static_rtti
4
@ mark999 LaTeX po prostu nie jest opcją do współpracy z osobami niematematycznymi. Jak wyjaśnia Gavin Simpson, do dokumentów programu Word można włączyć grafikę wysokiej jakości, wybierając odpowiednie formaty.
whuber
3
@ mark999 Niestety niestety muszę się zgodzić z whucerem. LaTeX nie jest tak naprawdę opcją poza kilkoma polami, a nawet te, które są dość intensywne z matematyki, nadal używają programu Word jako domyślnego. Zastanawiałem się przez chwilę, a potem odrzuciłem, ponieważ było więcej kłopotów niż warto było współpracować.
Fomite,
1
@ whuber, zgadzam się z tobą, a EpiGrad częściowo się z tobą zgadzam. Prawdopodobnie wykonuję 90% pisania w LaTeX, a resztę w MS Word (używam Worda tylko wtedy, gdy nie mam wyboru). static_rtti: Nie wiem, co się z tobą dzieje, ponieważ bez żadnych problemów umieściłem pliki pdf w dokumentach Word.
mark999

Odpowiedzi:

4

Jeśli pracujesz na komputerze, wygodnie jest wstawiać dane do dokumentów pakietu Office w formacie emf za pomocą schowka.

emf jest rodzimym formatem grafiki wektorowej dla systemu Windows i pozwala edytować dane za pomocą narzędzi MS Office. Nie jest idealny, ale jest to szybki sposób na wygenerowanie prostego raportu.

Jeśli twoje dokumenty są w ogóle skomplikowane, obsługa liczb w programie MS Word jest okropna.

Leo Schalkwyk
źródło
12

Zależy od tego, w jaki sposób będziesz używać dokumentów Worda i jakie typy cyfr chcesz umieścić w dokumencie.

Jeśli liczby są standardowymi wykresami R z umiarkowaną liczbą punktów / danych, wówczas formaty wektorowe zapewnią najlepszą reprodukcję i umożliwią łatwe przeskalowanie rozmiaru obrazu przy niewielkim rozmiarze pliku. EPS przez postscript(...., onefile = FALSE, paper = "special")w takich przypadkach byłby najlepszym formatem, jeśli drukujesz w formacie PDF lub drukujesz na drukarce laserowej, która zna PostScript. Niestety, Word wykorzystuje wtyczkę innej firmy do wczytywania liczb EPS, co powoduje kiepski podgląd bitmapy w niskiej rozdzielczości, który jest wyświetlany na ekranie - jednak po wydrukowaniu otrzymujesz EPS wysokiej jakości.

Jeśli wykresy można uznać za rastry (wykresy powierzchniowe lub wykresy obrazu [mapy cieplne] z dużą liczbą „pikseli”) lub jeśli wykresy zawierają bardzo dużą liczbę punktów, zachowanie informacji o wektorach dla takich wykresów spowoduje duże rozmiar pliku i wysokie koszty przetwarzania, aby załadować do programu Word i przechowywać w pamięci podczas pracy nad dokumentem. W takich przypadkach używałbym wysokiej rozdzielczości TIFF lub PNG za pośrednictwem tiff()lub png()odpowiednio. Zobacz pliki pomocy, aby uzyskać pomoc w ustawianiu rozmiaru obrazu w pikselach i rozdzielczości. Urządzenia te renderują postać w postaci mapy bitowej, która przy dostatecznym rozmiarze / rozdzielczości będzie tolerować pewną ilość przeskalowania, ale będzie miała tendencję do znacznie wydajniejszego przechowywania, gdy liczba punktów danych lub komórek jest bardzo duża.

Weź również pod uwagę, że nie wszystkie urządzenia obsługują przezroczystość, głównie dlatego, że podstawowe formaty plików na to nie pozwalają; postscript()nie obsługuje przezroczystości pdf()i działa png(). cairo_ps()obsługuje przezroczystość, ale spowoduje to wygenerowanie obrazu bitmapowego w formacie EPS, co może nie być tym, czego chcesz.

Pamiętaj, że jeśli zapisujesz dokument w formacie PDF, dane bitmapowe zostaną w pewnym stopniu zmniejszone. Zapomniałem, jak Word to kontroluje, ale miał dwa ustawienia w oknie dialogowym Zapisz, gdy wybrano typ PDF, a jedno z nich zmniejszy próbkowanie obrazów, aby uzyskać mniejszy rozmiar pliku. Będzie to związane z pewną utratą jakości, więc uważaj, którą opcję wybierzesz. Nie jest to specyficzne dla programu Word - OpenOffice.org i LibreOffice mają te same funkcje, ale oferują znacznie bardziej szczegółową kontrolę nad sposobem kompresji obrazów i tego, czy są one kompresowane, czy nie. Wynika to z faktu, że PDF został zaprojektowany zarówno do wyświetlania na ekranie, jak i na drukarce. Nie potrzebujesz wysokiej rozdzielczości obrazów, jeśli wyświetlasz je na ekranie w Internecie. Obrazy w wyższej rozdzielczości skutkują większymi rozmiarami plików, więc można ustawić miejsce docelowe pliku PDF,

Gavin Simpson
źródło
1
Dzięki, dobra wskazówka. PostScript wydaje się ładnie mówić do Worda do drukowania. Niestety słaby podgląd na ekranie nie jest trywialnym problemem. W moim środowisku wiele dokumentów Word jest wysyłanych i czytanych na ekranie.
Peter Ellis,
7

Jeśli korzystasz z systemu Windows, spróbuj win.metafile. Jest to format wektorowy, o ile dobrze pamiętam, i ładnie gra z Wordem.

mpiktas
źródło
5

Grafika R w systemie Windows może być dość trudna. Największym problemem, jaki mam, jest to, że wygładzanie krawędzi nie działa poprawnie w systemie Windows. Z jakiegoś powodu muszę użyć wtyczki urządzenia Kair, aby ją ładnie sformatować.

Próbowałem zarówno pakietu Cairo, jak i cairoDevice, a obecnie uważam, że cairoDevice jest najłatwiejszy i najbardziej niezawodny, jest o nim post StackOverflow .

Aby skorzystać z pakietu cairoDevice, wystarczy:

# Create the device
Cairo_png(filename="my_file_name.png",
    width=16,
    height=16,
    pointsize=18)
# Do a plot
plot(x, y)
# Saves the file
dev.off()

Możesz również zapisać w formacie PDF / svg, a następnie użyć programu Inkscape do edycji wykresu, zmiany czcionek itp., A następnie wyeksportować go do formatu png.

Max Gordon
źródło
Tak. Odkryłem, że urządzenie png w Kairze tworzy najładniejsze działki do przeglądania na ekranie w dokumencie Word. W przypadku maszyn, dla których capabilities("cairo")jest TRUE, można po prostu użyć alternatywnie png(..., type="cairo")albo może coś png(..., type="cairo", res=200)uzyskać podobny wynik.
Josh O'Brien
1
@ JoshO'Brien - Dobra uwaga. Od czasu mojej oryginalnej odpowiedzi napisałem dwa posty na blogu na ten temat: gforge.se/2013/02/exporting-nice-plots-in-r i gforge.se/2013/03/exporting-plain-lattice-or-ggplot
Max Gordon,
Super, dzięki za linki. Jakoś mi nie brakowało units="in"opcji aż je czytać. Chciałbym wiedzieć o tym rok, dwa lub 10 lat temu! Ponieważ Twoja odpowiedź jest tutaj najlepsza, warto ją edytować lub dodać aktualizację na temat type="cairo"opcji z wbudowanym urządzeniem - szczególnie biorąc pod uwagę jego zalety, nawet w porównaniu z funkcjami pakietu Kair ...
Josh O ' Brien
3

Pliki PDF, ps, SVG lub eps są urządzeniami graficznymi opartymi na wektorach . JPG, TIFF, PNG, ... itd. To grafika rastrowa. W przypadku grafiki rastrowej kompromis między rozmiarem a jakością. Dostosowując szerokość, wysokość i inne formatowanie, możesz zachować wysoką jakość grafiki rastrowej . Możesz wstawić format PNG lub JPG, aby wstawić obraz.

Obrazy SVG mogą być wstawiane do dokumentu MSWORD. Można sprawdzić to .

vinux
źródło
Zauważ, że urządzenie svg R czasami daje ci raster, kiedy się go nie spodziewasz.
Thomas Levine
2

Najłatwiej jest wybrać .pngpliki tak jak ja. Jednak słowo pokazuje, że są dość rozmyte - przynajmniej w moim przypadku. Kiedy używałem Eviews, próbowałem, .epsco spowodowało własny zestaw problemów, ale jakość była lepsza. Myślę, że ostatecznie musisz wybrać pomiędzy mniejszym złem.

Seb
źródło
Myślę, że rozmycie jest spowodowane algorytmem skalowania słowa. Przed wstawieniem możesz uzyskać lepsze wyniki zmiany rozmiaru w programie do edycji obrazów, aby wyświetlał się w 100% według programu Word.
James
lub w pierwszej kolejności utwórz plik png o pożądanym rozmiarze. Domyślne są, width = 480, height = 480, units = "px", pointsize = 12,ale można je zmienić w skrypcie R
Henry,
2

To nie bezpośrednio odpowiedzieć na to pytanie, ale można uzyskać lepszą integrację pomiędzy R i MS Word przy użyciu pakiet R R2wd lub komercyjnego oprogramowania wnioskowanie na badania . Zapewniają one podobną do Sweave bezpośrednią integrację R i MS Word, eliminując wycinanie i wklejanie lub zapisywanie i ładowanie oraz ułatwiając aktualizację wykresów w dokumencie z wiersza poleceń. Nie korzystałem z nich, ale używam Sweave i zalecam umiejętne programowanie , które jest obsługiwane przez wszystkie te narzędzia.

Sweave jest najczęściej używanym piśmiennym narzędziem programistycznym wśród użytkowników R. Jest to LaTeX + R i tak powstają winiety R oraz wiele książek i artykułów w czasopismach.

Narzędzia Word + R obiecują mniej zniechęcający interfejs dla nowych użytkowników. LaTeX ma bardziej stromą krzywą uczenia się niż Word.

Jednak przy cenie 199 USD rocznie wnioskowanie dla R stanowi dla innych wyzwanie, aby odtworzyć twoje analizy, w przeciwieństwie do Sweave, który jest częścią podstawy R.

David LeBauer
źródło