2012-08-23 16 views
7

Mam następujący kod, aby utworzyć plot. Na x - i y-axessymbols, które pojawiają się na ekranie, w JPEG, gdy zapisuję mój wykres w tym formacie, ale nie, gdy zapisuję działkę jako PDF.Wykreślanie symboli kończy się niepowodzeniem w pliku PDF

Czy istnieje inny symbol mojego \u2030, który zostanie wydrukowany w moim pliku PDF lub innym rozwiązaniu mojego problemu? Zobacz przykłady poniżej prawidłowego (format JPEG) i niepoprawnego (PDF) wykresów.

plot(c(-1,1), c(-1,1), bty = "n", type= "n", las = 1, cex.lab = 1.5, cex.axis = 1.25, main = NULL, 
ylab=expression(paste("Correlation Coefficient (r) for ", delta ^{15},"N"," \u0028","\u2030","\u0029")), 
xlab=expression(paste("Correlation Coefficient (r) for ", delta ^{13},"C"," \u0028","\u2030","\u0029"))) 
axis(1, at = seq(-1.0, 1.0, by = 0.1), labels = F, pos = 0, cex.axis = 0.05, tcl = 0.25) 
axis(2, at = seq(-1.0, 1.0, by = 0.1), labels = F, pos = 0, cex.axis = 0.05, tcl = 0.25) 

enter image description here enter image description here

+2

Czy ci (przynajmniej jak rozumiem ti). wypróbowałeś inne urządzenie pdf, takie jak 'cairo_pdf'? –

+0

Nie mogę zauważyć niczego, co wydaje mi się "nieprawidłowe"? –

+0

Próbowałem cairo_pdf, ale dostałem błąd, gdy uruchomiłem polecenie 'plot' jak wyżej. –

Odpowiedz

4

Problem polega na tym, że domyślna czcionka nie ma "‰" (które bym określił jako "za mil") jako glifu, który jest tworzony z \ u0028. Trzeba zmienić czcionkę, która ma tego glif:

?pdfFonts 

To co dostaję z mojej konfiguracji, gdzie nie ma problemu

> str(pdfFonts("sans")) 
List of 1 
$ sans:List of 3 
    ..$ family : chr "Helvetica" 
    ..$ metrics : chr [1:5] "Helvetica.afm" "Helvetica-Bold.afm" "Helvetica-Oblique.afm" "Helvetica-BoldOblique.afm" ... 
    ..$ encoding: chr "default" 
    ..- attr(*, "class")= chr "Type1Font" 
+1

Otrzymuję to samo wyjście, ale mogę zreplikować problem za pomocą domyślnego kodowania. – Roland

+0

Nie miałem żadnych problemów z domyślnym kodowaniem na moim Macu. (Które mogą nie być pomocne dla OP, który nie ujawnił swojego systemu operacyjnego.) –

+0

Jego komentarz powyżej mówi: 'R wersja 2.14.0 (2011-10-31) Platforma: i386-pc-mingw32/i386 (32-bit)' –

3

Prawdopodobnie trzeba zmienić kodowanie. Na moim mac to robi mi znak ‰:

pdf('test.pdf',encoding="MacRoman") 
plot.new() 
text(0,labels="\u2030") 
dev.off() 

spojrzeć w „enc” katalogu pakietu grDevices dla dostępnych kodowań i je wypróbować.

+0

Kiedy próbuję twojego kodu, otrzymuję komunikat 'Błąd w tekście.default (0, labels =" ‰ "): nieznane kodowanie 'MacRoman' w 'mbcsToSbcs'. Wszelkie sugestie dotyczące tego, co to oznacza i jak go rozwiązać? –

+0

Tak. Musisz wypróbować inne kodowanie, ponieważ nie masz na Macu, ale używając Windows. – Roland

+1

Po przetestowaniu na moim komputerze z systemem Windows w pracy: nie mogę zreplikować twojego problemu i kod działa dobrze również z kodowaniem 'MacRoman', które powinno być również dostępne w oknach. Proponuję zainstalować najnowszą wersję R (2.15.1) i jeśli problem będzie się powtarzał, daj nam cały wynik 'sessionInfo()'. – Roland

Powiązane problemy