2013-02-07 36 views
2

我最近遇到了R中的一个问题,在那个组合中,我试图解决并在互联网上搜索,但我还没有解决。我希望有一个人可以帮助我。pdf字体和图形格式(win.graph)

我在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的替代方法吗?

感谢您的帮助。

+0

设置PDF设备的尺寸。试图混合两种不同的设备似乎是疯狂的处方。 –

回答

0

天啊,我很抱歉,我太蠢了!

在我完全忽略的一切中,pdf设备都有自己的尺寸参数。

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

谢谢你的提示,迪文