我使用以下命令创建了几个简单的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图的方法
答案 0 :(得分:39)
虽然更改AI使用的字体效果很好,但另一种方法是通过在ggsave命令中添加参数'useDingbats'来限制ggplot2首先使用Dingbats,例如:
ggsave(plot=p,height=6,width=6,dpi=200, filename="~/example.pdf", useDingbats=FALSE)
答案 1 :(得分:36)
我在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
答案 2 :(得分:10)
对于无法在pdf中正确显示的点或点,我只需将Zapf Dingbats替换为Adobe Illustrator中缺少的字体。对于简单的绘图标记,这可以在大多数时间完成工作。
答案 3 :(得分:9)
这似乎是一个不正常的问题,其中Adobe Illustrator无法找到与Adobe Reader一起分发的字体(AdobePiStd),因此很可能存在。
如果您搜索计算机,则可能会找到它。在我的WindowsXP系统上,它位于: C:\ Program Files \ Adobe \ Reader 10.0 \ Resource \ Font
找到后,您可以在该文件夹中安装它和其他字体,这样就可以让Illustrator找到它们。
对于R中的其他字体/ pdf问题,grDevices包中的embedFonts函数很有用。
答案 4 :(得分:8)
使用useDingbats=FALSE
作为pdf输出,然后Illustrator就不会抱怨。
pdf("example.pdf", useDingbats=FALSE)
ggplot(plotobject, aes(x=Pos, y=Pval),res=300)
dev.off()
答案 5 :(得分:3)
编辑2018 下面的问题是最初的混淆面。这个问题的答案是pdf(useDingbats = FALSE)
,如上面的众多答案所述。我不会删除这个答案,如果你想阅读有关字体的内容(也可能会出现问题)。
OLD ANSWER AI无法识别Helvetica类型的字体。在我的电脑中它并不重要,因为它会自动用适当的东西替换字体。当然,在某些情况下你想要改变字体。我经常在AI中手动完成(只需选择所有文本并更改字体类型)。这是关于如何更改ggplot2中字体的线程:Modifying fonts in ggplot2
聚苯乙烯。还有另一个可能有用的主题:Fonts in R plots
答案 6 :(得分:3)
您可以下载AdobePiStd字体 - 只需谷歌,下载并安装。重新启动后,字体应正确显示。然后,您可以使用&#39;查找字体...&#39; Illustrator中的实用程序,如果您愿意,可以更改它。
答案 7 :(得分:0)
在简单的情况下可以解决问题的另一个选择是在插图画家中选择未正确显示的textobject并更改字体。 Helvetica Neue为我工作。
答案 8 :(得分:0)
我只需添加alpha规范就可以解决问题。如果您不需要任何透明度,则可以选择alpha值0.9 ...
示例:
ggplot() + geom_point(aes(x=..,y=.., color=...), alpha=0.8)