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

このコードはそのままで、見た目どおりのグラフを作成できますが、グラフを手動で保存する必要があり([ファイル]-> [名前を付けて保存])、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ではありませんが)。

これを機能させる方法、または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 に答える