2012-08-23 3 views
7

Ich habe den folgenden Code, um eine plot zu erstellen. Auf der x - und y-axes gibt es symbols, die auf dem Bildschirm erscheinen, in einer JPEG, wenn ich mein Grundstück in diesem Format speichern, aber nicht, wenn ich das Grundstück als PDF speichern.Plotten Symbole schlägt in PDF

Gibt es alternative Symbol zu meinem \u2030, die in meinem PDF oder einer anderen Lösung für mein Problem gedruckt wird? Sehen Sie sich die folgenden Beispiele des korrekten (JPEG-Formats) und des falschen (PDF) Plots an.

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

Haben Sie (zumindest als ich ti verstehen.) versuchte ein anderes PDF-Gerät, wie 'cairo_pdf'? –

+0

Ich kann nichts erkennen, was mir "inkorrekt" erscheint? –

+0

Ich habe versucht, cairo_pdf, aber bekomme einen Fehler, wenn ich den Befehl "plot" wie oben ausgeführt. –

Antwort

4

Das Problem ist, dass Ihre Standardschrift nicht "‰" (was ich als "pro mil" sprechen würde) als die Glyphe, die mit \ u0028 produziert wird. Sie müssen eine Schriftart ändern, dass die Glyphe hat:

?pdfFonts 

Dies ist, was ich mit meinem Setup bekommen, wo es kein Problem

> 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

Ich bekomme die gleiche Ausgabe, aber kann das Problem mit der Standardcodierung replizieren. – Roland

+0

Ich hatte keine Probleme mit der Standard-Codierung auf meinem Mac. (Dies ist möglicherweise nicht hilfreich für den OP, der sein Betriebssystem nicht veröffentlicht hat.) –

+0

Sein Kommentar oben sagt: 'R Version 2.14.0 (2011-10-31) Plattform: i386-pc-mingw32/i386 (32-Bit)' –

3

Sie haben wahrscheinlich die Codierung zu ändern. Auf meinem Mac bekommt das mir die ‰ Zeichen:

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

Blick in den ‚enc‘ Verzeichnis Paket grDevices verfügbaren Kodierungen und ausprobieren.

+0

Wenn ich Ihren Code versuche, bekomme ich 'Fehler in text.default (0, Etiketten =" ‰ "): unbekannte Codierung 'MacRoman' in 'mbcsToSbcs'. Irgendwelche Vorschläge, was das bedeutet und wie man es löst? –

+0

Ja. Sie müssen eine andere Kodierung versuchen, da Sie nicht auf einem Mac sind, sondern Windows verwenden. – Roland

+1

Nach dem Testen auf meiner Windows-Maschine bei der Arbeit: Ich kann Ihr Problem nicht replizieren und der Code läuft auch mit der Kodierung 'MacRoman' gut, die auch auf Windows verfügbar sein sollte. Ich schlage vor, die neueste R-Version (2.15.1) zu installieren, und wenn das Problem weiterhin besteht, geben Sie uns die gesamte Ausgabe von 'sessionInfo()'. – Roland