pdf字体和图形格式(win.graph)

时间:2013-02-07 15:50:07

标签: r graph fonts pdf-generation

我最近在R中遇到了一个问题,在这个组合中我试图解决并在互联网上搜索,但我还没解决。我希望有人可以帮助我。

我在Windows 7上运行R(x64)。图形设备本身自动使用Arial作为字体,当我将图形保存为位图时,“字体”自然保持不变。但是,我更喜欢将图形保存为pdf,在这种情况下,当我通过GUI保存按钮保存时,生成的pdf中的字体与Helvetica交换。

我在互联网上找到了一个解决方案,使用Arial afm-Files和pdf(“Test_Auto.pdf”,family =“Arial”),这导致使用Arial作为字体的pdf ---到目前为止好。

现在我经常需要/想要使用win.graph更改图形布局,这就是问题的起点。这是一个例子:

Arial <- Type1Font(family = "Arial", metrics = c("C:/R_Fonts/ArialPlain.afm", "C:/R_Fonts/ArialBold.afm", "C:/R_Fonts/ArialItalic.afm", "C:/R_Fonts/ArialBoldItalic.afm"))
pdfFonts(Arial = Arial)

setwd("C:/PDFCrop")
D1<-matrix(c(1,2,3,4,6,3),3,2)
D2<-matrix(c(1,2,3,5,3,1),3,2)

#pdf("Test_Auto.pdf", family = "Arial")
win.graph(8.3,12,12)
layout(matrix(c(1,2),1,2,byrow=TRUE))
plot(D1,type="l",main="Gobble R")
plot(D2,type="l",main="Gobble R")
#dev.off()

现在这段代码可以创建一个看起来像我希望它看起来的图形,但是我必须手动保存图形(File-&gt;另存为)然后我在PDF格式中将Helvetica作为字体。

或者我可以改变

中的下半部分
pdf("Test_Auto.pdf", family = "Arial")
#win.graph(8.3,12,12)
layout(matrix(c(1,2),1,2,byrow=TRUE))
plot(D1,type="l",main="Gobble R")
plot(D2,type="l",main="Gobble R")
dev.off()

这会生成一个实际使用Arial的pdf文件,但该图还有其他维度。当我们一起使用时,我得到一个“无法打开因为它不包含任何页面”的pdf(虽然它的大小不是0KB)。

有没有办法让这个工作,或win.graph的替代品,我可以在pdf()和dev.off()之间使用?

谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

天哪,我很抱歉,我太傻了!

在我完全忽略的所有内容中,pdf-device都有自己的大小参数。

Arial <- Type1Font(family = "Arial", metrics = c("C:/R_Fonts/ArialPlain.afm", "C:/R_Fonts/ArialBold.afm", "C:/R_Fonts/ArialItalic.afm", "C:/R_Fonts/ArialBoldItalic.afm"))
pdfFonts(Arial = Arial)

setwd("C:/PDFCrop")
D1<-matrix(c(1,2,3,4,6,3),3,2)
D2<-matrix(c(1,2,3,5,3,1),3,2)

pdf("Test_Auto.pdf", width=8.3, height=12, family = "Arial")
#win.graph(8.3,12,12)
layout(matrix(c(1,2),1,2,byrow=TRUE))
plot(D1,type="l",main="Gobble R")
plot(D2,type="l",main="Gobble R")
dev.off()

感谢您提示,DWin