2012-04-03 15 views
38

ho creato diversi appezzamenti semplice ggplot2 e li salvò in file PDF utilizzando i seguenti comandi:ggplot2 PDF Import in carattere mancante Adobe Illustrator AdobePiStd

p <- ggplot(plotobject, aes(x=Pos, y=Pval),res=300) 
ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf") 

Se ora apro questo example.pdf in Adobe Illustrator ottengo il seguente errore:

The font AdobePiStd is missing. Affected text will be displayed using a substitute font.

c'è un modo in ggplot2 per specificare un font (presumo che questo è per i punti/punti) che Adobe capirà o comunque c'è un modo per ottenere questo tipo di carattere che lavora in Adobe?

/modifica solo per chiarire, il testo/etichette/titoli vanno tutti bene i punti che mancano per il font /edit2 Ho ottenuto una soluzione funzionante semplicemente usando l'output EPS in ggsave, ma mi piacerebbe comunque per trovare un modo per poter aprire/importare solo i grafici ggplot2 in formato PDF direttamente in AI

+7

Ho lo stesso problema. Aprendo un file ggplot in un editor di testo, sono stato in grado di vedere che ggplot2 specifica Zapf Dingbats come carattere simbolo. Quindi, perché l'IA cerca di usare AdobePiStd (mancante) invece di Zapf Dingbats (presente)? Non lo so, ma sospetto che cambiare il font specificato da ggplot2 non risolva il problema. Ho risolto questo problema copiando il file di carattere '/ Libreria/Application Support/Adobe/PDFL/8.0/Fonts/AdobePiStd.otf' dal mio mac alla macchina Win7 del mio collega (trascina sul pannello di controllo del font per installare). – bdemarest

+0

@bdemarest quindi se faccio questo posso effettivamente aprire i PDF direttamente senza lamentele? – Sander

+1

Sì. Il tracciamento dei simboli in pdf ora appare correttamente senza ulteriori azioni. La soluzione di @Jim M. è più generale (ma deve essere fatta per ogni file). – bdemarest

risposta

29

Anche se cambiando i caratteri utilizzati da AI funziona bene, in alternativa è quella di limitare l'ggplot2 usare Simboli, in primo luogo con l'aggiunta di 'useDingbats' argomento al comando ggsave esempio:

ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf", useDingbats=FALSE) 
+2

Questo è geniale! Grazie mille, ho cercato questo per anni. – Torvon

3

AI non riconosce i caratteri di tipo Helvetica. Nel mio computer non importa molto, poiché sostituisce automaticamente il carattere con qualcosa di adatto. Ovviamente vorresti cambiare il font in alcuni casi. Lo faccio spesso manualmente in AI (basta selezionare tutto il testo e cambiare il tipo di carattere). Qui è un passo come cambiare il carattere in ggplot2: Modifying fonts in ggplot2

Ps. C'è anche un altro battistrada che potrebbe essere utile: Fonts in R plots

+0

Grazie per il suggerimento, ho aggiornato la domanda. Il testo di etichette e titoli non è il problema, sono i punti dati stessi che mancano di carattere saggio. – Sander

10

Per punti o punti che non vengono visualizzati correttamente in un file PDF, sostituisco semplicemente Zapf Dingbats per il font mancante in Adobe Illustrator. Per semplici marcatori di trama, questo è il lavoro il più delle volte.

+0

Sono ancora abbastanza un neofita in AI, quindi come farei? AI solleva questo errore quando impongo il PDF e poi li sostituisco automaticamente con i quadrati. I punti dati sono ancora nello stesso identico luogo dopo averlo fatto? Ho letto da qualche parte sulla mailing list R (non riesco a trovare la discussione 123) che le persone si sono lamentate del fatto che questo ha reso i loro punti di riferimento posizioni leggermente mutevoli, cosa di cui non sarei molto contento. – Sander

+1

@Sander In AI (sto usando CS4 per Mac), sotto il menu Tipo, ci dovrebbe essere una voce di menu Trova carattere. Nella finestra di dialogo, si evidenzia AdobePiStd nella casella in alto, e si seleziona Zapf Dingbats nella casella in basso una volta tirato giù il carattere di sostituzione da "Sistema" per mostrare i caratteri disponibili. Potrebbe esserci qualche lieve spostamento, ma questo può essere trascurabile a seconda delle scale dell'asse. –

9

Questo sembra essere un problema perverso in cui Adobe Illustrator non riesce a trovare un font (AdobePiStd) distribuito con Adobe Reader e quindi è probabilmente presente.

Se si esegue la ricerca sul computer, è probabile che lo si trovi. Sul mio sistema WindowsXP, era in: C: \ Programmi \ Adobe \ Reader 10.0 \ Resource \ Font

Dopo averlo trovato, è possibile installarlo e altri tipi di carattere in quella cartella, che dovrebbe consentire a Illustrator di trovarli .

Per altri problemi di font/pdf in R, la funzione embedFonts nel pacchetto grDevices è utile.

+0

Oltre a embedFonts, ora è disponibile un pacchetto extrafont che semplifica l'incorporamento dei caratteri in ggplot – MattBagg

2

È possibile scaricare il carattere AdobePiStd - solo Google, scaricare e installare. Dopo il riavvio, il carattere dovrebbe essere visualizzato correttamente. È quindi possibile utilizzare l'utilità 'Trova carattere ...' all'interno di Illustrator per modificarlo, se lo si desidera.

33

Mi sono imbattuto in questo problema pure. Su Mac OS X 10.8.2, copiare semplicemente AdobePiStd.otf da/Library/Application Support/Adobe/PDFL/10.9/Fonts/AdobePiStd.otf a/Library/Fonts/ha risolto il problema per tutti i PDF successivi.

+2

Delle 5 (attuali) risposte a questa domanda, questo è stato l'unico che sono riuscito a implementare correttamente. –

+1

La migliore opzione qui IMO – Thraupidae

+1

ha appena provato questo e funziona in modo impeccabile. Sebbene altre risposte funzionino, questo è chiaramente il migliore. – Sander

7

Usa useDingbats=FALSE per l'output pdf, quindi Illustrator non si lamenterà.

+0

Penso che questo sia il suggerimento più intelligente, in quanto ciò garantirà che lo stesso script R funzioni su macchine diverse (con o senza PiStd presente nel percorso corretto). –

0

Un'altra opzione che in casi semplici potrebbe risolvere il problema è in Illustrator selezionare i textobjects non visualizzati correttamente e modificare il carattere. Helvetica Neue lavora per me.

Problemi correlati