2

我最近在 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()

现在这段代码可以创建一个看起来像我想要的图形,但我必须手动保存图形(文件->另存为),然后我将 Helvetica 作为 pdf 中的字体。

或者我可以改变下部

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)。

有什么方法可以让它工作,或者可以在 pdf() 和 dev.off() 之间使用 win.graph 的替代方法吗?

谢谢你的帮助。

4

1 回答 1

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

于 2013-02-08T12:54:36.927 回答