2012-04-03 27 views
38

creé varias parcelas sencilla ggplot2 y los guarda en archivos PDF usando los siguientes comandos:ggplot2 importación PDF en Adobe Illustrator fuente que falta AdobePiStd

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

Si abro ahora esta ejemplo.pdf en Adobe Illustrator consigo el siguiente error:

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

¿hay alguna manera en ggplot2 para especificar una fuente (creo que esto es para los puntos/puntos) que Adobe va a entender o no hay una manera de obtener esta fuente de trabajo en Adobe?

/edit solo para aclarar, el texto/las etiquetas/los títulos están bien, son los puntos que faltan para la fuente /edit2 Obtuve una solución de trabajo simplemente usando la salida EPS en ggsave, pero aún así me encantaría para descubrir una forma de también poder abrir/importar ggplot2 parcelas en formato PDF directamente en AI

+7

Tengo el mismo problema. Al abrir un archivo ggplot pdf en un editor de texto, pude ver que ggplot2 especifica Zapf Dingbats como la fuente del símbolo. Entonces, ¿por qué AI intenta usar AdobePiStd (faltante) en lugar de Zapf Dingbats (presente)? No lo sé, pero sospecho que cambiar la fuente que especifica ggplot2 no resolverá el problema. Lo resolví copiando el archivo de fuente '/ Library/Application Support/Adobe/PDFL/8.0/Fonts/AdobePiStd.otf' de mi Mac en la máquina Win7 de mi colega (arrastre al panel de control de fuentes para instalar). – bdemarest

+0

@bdemarest entonces, si hago esto, ¿puedo abrir archivos PDF directamente sin ninguna queja? – Sander

+1

Sí. Trazar símbolos en pdfs ahora aparece correctamente sin más acciones. La solución de @Jim M. es más general (pero debe hacerse para cada archivo). – bdemarest

Respuesta

29

Aunque cambiar las fuentes utilizadas por AI funciona bien, una alternativa es restringir ggplot2 el uso de Script, en primer lugar mediante la adición de los argumentos 'useDingbats' a su comando ggsave por ejemplo:

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

¡Esto es brillante! Muchas gracias, he estado buscando esto por años. – Torvon

3

AI no reconoce las fuentes de tipo Helvetica. En mi computadora no importa mucho, ya que reemplaza automáticamente la fuente con algo adecuado. Por supuesto, querrás cambiar la fuente en algunos casos. A menudo lo hago manualmente en IA (simplemente seleccione todo el texto y cambie el tipo de letra). Aquí hay una banda de rodadura sobre cómo cambiar la fuente en ggplot2: Modifying fonts in ggplot2

Ps. También hay otra banda de rodadura que podría ser útil: Fonts in R plots

+0

Gracias por la sugerencia, actualizó la pregunta. El texto de las etiquetas y los títulos no es el problema, ya que son los puntos de datos en sí los que faltan. – Sander

10

Para puntos o puntos que no se muestran correctamente en un PDF, simplemente sustituyo Zapf Dingbats por la fuente que falta en Adobe Illustrator. Para marcadores de trazado simples, esto hace el trabajo la mayor parte del tiempo.

+0

Todavía soy bastante nuevo en IA, así que ¿cómo haría esto? AI solo aparece este error cuando importo el PDF y luego lo reemplazo automáticamente con cuadrados. ¿Siguen los puntos de datos exactamente en el mismo lugar después de hacer esto? He leído en algún lugar de la lista de correo de R (no puedo encontrar el hilo 123) que las personas se quejaron de que esto hacía que sus puntos de datos cambiaran ligeramente de posición, algo con lo que no estaría muy contento. – Sander

+1

@Sander En AI (estoy usando CS4 para Mac), en el menú Tipo, debe haber una opción de menú Buscar fuente. En el cuadro de diálogo, resalta AdobePiStd en el cuadro superior y selecciona Zapf Dingbats en el cuadro inferior una vez que hale la Fuente Reemplazar desde "Sistema" para mostrar las fuentes disponibles. Puede haber algunos cambios menores, pero esto puede ser insignificante dependiendo de las escalas de su eje. –

9

Esto parece ser un problema perverso en el que Adobe Illustrator no puede encontrar una fuente (AdobePiStd) que se distribuya con Adobe Reader y, por lo tanto, es probable que esté presente.

Si busca en su computadora, es probable que la encuentre. En mi sistema Windows XP, estaba en: C: \ Archivos de programa \ Adobe \ Reader 10.0 \ Resource \ Font

Después de encontrarlo, puede instalarlo y otras fuentes en esa carpeta, lo que debería permitir a Illustrator encontrarlas .

Para otros problemas de fuente/pdf en R, la función embedFonts en el paquete grDevices es útil.

+0

Además de embedFonts, ahora hay un paquete extrafondos que facilita insertar fuentes en ggplot – MattBagg

2

Puede descargar la fuente AdobePiStd - solo Google, descargue e instálela. Después de reiniciar, la fuente debería mostrarse correctamente. Luego puede usar la utilidad 'Buscar fuente ...' dentro de Illustrator para cambiarla si lo desea.

33

Me encontré con este problema también. En Mac OS X 10.8.2, simplemente copiando AdobePiStd.otf de/Library/Application Support/Adobe/PDFL/10.9/Fonts/AdobePiStd.otf a/Library/Fonts/resolvió el problema para todos los archivos PDF posteriores.

+2

De las 5 respuestas (actuales) a esta pregunta, esta fue la única que pude implementar con éxito. –

+1

La mejor opción aquí IMO – Thraupidae

+1

acaba de probar esto y funciona sin problemas. Aunque otras respuestas funcionan, esta es claramente la mejor. – Sander

7

Uso useDingbats=FALSE de la salida de PDF, luego Illustrator no se quejará.

pdf("example.pdf", useDingbats=FALSE) 
ggplot(plotobject, aes(x=Pos, y=Pval),res=300) 
dev.off() 
+0

Creo que esta es la sugerencia más inteligente, ya que esto asegurará que el mismo script R funcione en diferentes máquinas (con o sin PiStd presente en la ruta correcta). –

0

Otra opción que en casos sencillos podría resolver el problema es que en ilustrador seleccionar los textobjects no se muestran correctamente y cambiar la fuente. Helvetica Neue trabaja para mí.

Cuestiones relacionadas