Ggplot2 pdf импорт в Adobe Illustrator отсутствует шрифт AdobePiStd
Я создал несколько простых графиков ggplot2 и сохранил их в файлах PDF с помощью следующих команд:
p <- ggplot(plotobject, aes(x=Pos, y=Pval),res=300)
ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf")
Если я сейчас открою этот пример .pdf в Adobe Illustrator, я получаю следующую ошибку:
Отсутствует шрифт AdobePiStd. Затронутый текст будет отображаться с использованием заменяющий шрифт.
Есть ли способ в ggplot2 указать шрифт (я полагаю, это для точек/точек), что Adobe поймет или иначе есть способ получить этот шрифт, работающий в Adobe?
/edit только для уточнения, текст/ярлыки/заголовки - все это прекрасно, его точки, которые отсутствуют для шрифта
/edit 2 Я получил рабочее решение, просто используя выход EPS в ggsave, но все равно хотел бы узнать, как можно просто открыть/импортировать графики ggplot2 в формате PDF непосредственно в AI
Ответы
Ответ 1
Хотя изменение шрифтов, используемых AI, хорошо работает, альтернативой является ограничение ggplot2 от использования Dingbats в первую очередь добавлением аргумента 'useDingbats' к вашей команде ggsave, например:
ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf", useDingbats=FALSE)
Ответ 2
Я столкнулся с этой проблемой и в Mac OS X 10.8.2.
Это решило проблему для меня:
font='/Library/Application Support/Adobe/PDFL/10.9/Fonts/AdobePiStd.otf'
cp $font /Library/Fonts/
В вашей системе найдите файл с find
:
find / -name AdobePiStd.otf 2>/dev/null
/Applications/Adobe Photoshop CC 2018/Adobe Photoshop CC 2018.app/Contents/Required/PDFL/Resource/Fonts/AdobePiStd.otf
/Applications/Adobe Illustrator CC 2018/Adobe Illustrator.app/Contents/Required/PDFL Resource/Resource/Fonts/AdobePiStd.otf
/Applications/Adobe Acrobat DC/Adobe Acrobat.app/Contents/Resources/Resource/Font/AdobePiStd.otf
Ответ 3
Для точек или точек, которые не отображаются правильно в pdf, я просто заменяю Zipf Dingbats на отсутствующий шрифт в Adobe Illustrator. Для простых маркеров графика это делает большую часть работы.
Ответ 4
Это кажется порочной проблемой, когда Adobe Illustrator не может найти шрифт (AdobePiStd), который распространяется вместе с Adobe Reader и, следовательно, может присутствовать.
Если вы ищете свой компьютер, вы, скорее всего, его найдете. В моей системе WindowsXP это было в:
C:\Program Files\Adobe\Reader 10.0\Resource\Font
После его поиска вы можете установить его и другие шрифты в этой папке, что должно позволить Illustrator найти их.
Для других проблем с шрифтом /pdf в R полезно использовать функцию embedFonts в пакете grDevices.
Ответ 5
Используйте useDingbats=FALSE
для вывода pdf, тогда Illustrator не будет жаловаться.
pdf("example.pdf", useDingbats=FALSE)
ggplot(plotobject, aes(x=Pos, y=Pval),res=300)
dev.off()
Ответ 6
ОБНОВЛЕНИЕ 2018 Вопрос под был для первоначального лица путаницы. Ответ на этот вопрос pdf(useDingbats = FALSE)
, как указано в многочисленных ответах выше. Я не буду удалять этот ответ, если вы хотите прочитать о шрифтах (что может стать проблемой).
СТАРЫЙ ОТВЕТ ИИ не распознает шрифты типа Helvetica. На моем компьютере это не имеет большого значения, так как он автоматически заменяет шрифт на что-то подходящее. Конечно, вы хотите изменить шрифт в некоторых случаях. Я часто делаю это вручную в AI (просто выделяю весь текст и меняю тип шрифта). Вот тема о том, как изменить шрифт в ggplot2: Изменение шрифтов в ggplot2
Ps. Также может быть полезен другой поток: Fonts in R plots
Ответ 7
Вы можете скачать шрифт AdobePiStd - просто Google it, скачать и установить. После перезагрузки шрифт должен отображаться правильно. Затем вы можете использовать утилиту "Найти шрифт..." в Illustrator, чтобы изменить ее, если хотите.
Ответ 8
Другой вариант, который в простых случаях может решить проблему, заключается в том, что в иллюстраторе выберите текстовые объекты, которые не отображаются правильно, и измените шрифт. Helvetica Neue работает для меня.
Ответ 9
Я мог бы решить проблему, просто добавив альфа-спецификацию. Если вам не нужна прозрачность, вы можете выбрать альфа-значение 0,9...
Пример:
ggplot() + geom_point(aes(x=..,y=.., color=...), alpha=0.8)