2013-02-07 45 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() 

謝謝你的提示,迪文