2012-08-23 10 views
7

Ho il seguente codice per creare un plot. Su x e symbols vengono visualizzati sullo schermo, in un JPEG quando si salva il grafico in quello formato, ma non quando si salva il grafico come PDF.I simboli di stampa non funzionano in PDF

C'è un simbolo alternativo al mio \u2030 che stamperà nel mio PDF o un'altra soluzione al mio problema? Vedere esempi di seguito dei grafici corretti (formato JPEG) e errati (PDF).

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

Avete (almeno per quanto ho capito ti.) provato un altro dispositivo pdf, come 'cairo_pdf'? –

+0

Non riesco a individuare nulla che mi sembra "errato"? –

+0

Ho provato cairo_pdf ma ottengo un errore quando eseguo il comando 'plot' come sopra. –

risposta

4

Il problema è che il font predefinito non ha "‰" (che direi come "per mil") come glifo prodotto con \ u0028. È necessario passare a un tipo di carattere che dispone che glifo:

?pdfFonts 

Questo è quello che ho con il mio setup dove non c'è problema

> 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

Ottengo lo stesso output, ma posso replicare il problema con la codifica predefinita. – Roland

+0

Non ho avuto problemi con la codifica predefinita sul mio Mac. (Che potrebbe non essere utile all'OP che non ha rivelato il suo SO.) –

+0

Il suo commento sopra dice: 'R versione 2.14.0 (2011-10-31) Piattaforma: i386-pc-mingw32/i386 (32-bit)' –

3

probabilmente dovete cambiare la codifica. Sul mio Mac questo mi fa il segno ‰:

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

Guardate nella directory ‘enc’ del pacchetto di grDevices per codifiche disponibili e provarli.

+0

Quando provo il tuo codice ottengo 'Errore in text.default (0, labels =" ‰ "): codifica sconosciuta 'MacRoman' in 'mbcsToSbcs'. Qualche suggerimento su cosa significa e su come risolverlo? –

+0

Sì. Devi provare una codifica diversa dal momento che non sei su un Mac, ma usando Windows. – Roland

+1

Dopo il test sulla mia macchina Windows al lavoro: non riesco a replicare il problema e il codice funziona bene anche con la codifica 'MacRoman', che dovrebbe essere disponibile anche su Windows. Suggerisco di installare la versione più recente di R (2.15.1) e se il problema persiste darci l'intero output di 'sessionInfo()'. – Roland

Problemi correlati