Подтвердить что ты не робот

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

4b9b3361

Ответ 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)