pdf中的ggplot嵌入字体

时间:2014-12-18 08:39:44

标签: r pdf fonts ggplot2

我一直在使用以下指南将使用ggplot制作的地图导出为pdf:plot fonts guide

它在帖子的底部提出了一些字体没有出现的问题,这在我下面的例子中发生。字体包豪斯93中的文字正确显示,而Calibri中的文字显示不正确。

有没有人找到解决此问题的方法?

library(ggplot2)
library(plyr)
library(grid)
library(gridExtra)
library(extrafont)

data1<-as.data.frame(1:5)
data1[,2]<-as.data.frame(c(1,3,5,7,9))
data1[,3]<-as.data.frame(c(2,4,6,8,10))
colnames(data1)<-c("x","y1","y2")

ggplot(data1, aes(x=x)) + 
  geom_line(aes(y = y1, colour = "Taux selon DEF"), size=0.61, colour="black") +  
  geom_line(aes(y = y2, colour = "Taux selon EC"), size=0.61, colour="black", linetype="dashed") + 
  xlab("X axis lab") + ylab("Y axis lab)") +
  annotate("text", x=1, y=4, label="Some text here", size=2, family="Bauhaus 93") +
  annotate("text", x=4, y=1, label="More text here", size=2, family="Calibri") +
  theme_bw() + theme(legend.title = element_blank(),
                     legend.key = element_rect(fill=NA),
                     panel.border = element_blank(), 
                     axis.line = element_line(colour="black", size=0.25),
                     axis.ticks = element_line(size=0.25),
                     panel.grid.major = element_line(colour = "grey80", size=0.25),
                     panel.grid.minor = element_line(colour = "grey80", size=0.25),
                     axis.text.x = element_text(size=5.5 , lineheight=0.9, hjust=0.5, family="Bauhaus 93"),
                     axis.text.y = element_text(size=5.5 , lineheight=0.9, vjust=0.5, family="Calibri"),
                     axis.title.y = element_text(size=6.1, angle=0, vjust=0.975, face="bold", family="Calibri"),
                     axis.title.x = element_text(size=6.1, angle=0, vjust=-0.20, face="bold", family="Calibri")) +
  scale_x_continuous(expand = c(0, 0), limits=c(0,5)) + 
  scale_y_continuous(expand = c(0, 0), limits=c(0,10)) +
  ggtitle("Title") +
  ggsave("Test.pdf", width=7, height=5)
Sys.setenv(R_GSCMD = "C:/Program Files (x86)/PDF24/gs/bin/gswin32.exe")
embed_fonts("Test.pdf")

1 个答案:

答案 0 :(得分:28)

尝试将device=cairo_pdf添加到ggsave()来电。这个出现为我解决问题。这样,就不再需要使用embed_fonts()

在此处查看 mgaudet 的评论:https://github.com/wch/extrafont/issues/8