r-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")

如果我现在在Adobe Illustrator中打开这个example.pdf,我会得到以下错误:

字体AdobePiStd丢失。受影响的文本将使用显示替代字体。

在ggplot2中有没有办法指定Adobe能理解的字体(我想这是针对点/点的),或者有没有办法让这种字体在Adobe中工作?

/编辑只是为了澄清,文本/标签/标题都很好——字体中缺少的点/edit2我只使用ggsave中的EPS输出就得到了一个有效的解决方案,但我仍然很想找到一种方法,也可以直接在AI 中打开/导入PDF格式的ggplot2图

尽管更改AI使用的字体效果良好,但另一种选择是首先通过在ggsave命令中添加参数"useDingbats"来限制ggplot2使用Dingbats。例如:

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

我在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

对于pdf中无法正确显示的点或点,我只是用Zapf Dingbats代替Adobe Illustrator中缺少的字体。对于简单的绘图标记,这在大多数情况下都能完成任务。

这似乎是一个反常的问题,Adobe Illustrator找不到与Adobe Reader一起分发的字体(AdobePiStd),因此很可能存在。

如果你搜索你的电脑,你很可能会找到它。在我的WindowsXP系统上,它位于:C: \Program Files\Adobe\Reader 10.0\Resource\Font

找到它后,您可以在该文件夹中安装它和其他字体,这将使Illustrator能够找到它们。

对于R中的其他字体/pdf问题,grDevices包中的embedFonts函数很有用。

使用useDingbats=FALSE进行pdf输出,则Illustrator不会抱怨。

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

EDIT 2018下面的问题是针对最初的困惑面。这个问题的答案是pdf(useDingbats = FALSE),正如上面的许多答案中所述。我不会删除这个答案,以防你想阅读有关字体的内容(这可能也会成为一个问题)。

旧答案AI无法识别Helvetica类型的字体。在我的电脑里,这并不重要,因为它会自动用合适的字体替换字体。当然,在某些情况下,您会希望更改字体。我经常在AI中手动完成(只需选择所有文本并更改字体类型)。以下是关于如何更改ggplot2中的字体的线程:修改ggplot2 中的字体

Ps。还有另一个线程可能会有所帮助:R中的字体绘制

您可以下载字体AdobePiStd,只需谷歌即可下载并安装。重新启动后,字体应该会正确显示。然后您可以使用"查找字体…"Illustrator中的实用程序,如果您愿意,可以对其进行更改。

在简单情况下可能解决问题的另一个选项是在illustrator中选择未正确显示的文本对象并更改字体。Helvetica Neue适合我。

我可以通过添加alpha规范来解决这个问题。如果你不需要任何透明度,你可以选择0.9的阿尔法值…

示例:

ggplot() + geom_point(aes(x=..,y=.., color=...), alpha=0.8)

最新更新