2012-08-23 3 views
7

plotを作成する次のコードがあります。 x - とy-axesには、そのフォーマットでプロットを保存するとJPEGに表示されるsymbolsがありますが、プロットをPDFとして保存すると表示されません。シンボルをプロットするのがPDFで失敗する

私の\u2030には、私のPDFや他の解決方法で問題に印刷される代替シンボルはありますか?正しい(JPEG形式の)プロットと誤ったプロット(PDF)プロットの下の例を参照してください。

plot(c(-1,1), c(-1,1), bty = "n", type= "n", las = 1, cex.lab = 1.5, cex.axis = 1.25, main = NULL, 
ylab=expression(paste("Correlation Coefficient (r) for ", delta ^{15},"N"," \u0028","\u2030","\u0029")), 
xlab=expression(paste("Correlation Coefficient (r) for ", delta ^{13},"C"," \u0028","\u2030","\u0029"))) 
axis(1, at = seq(-1.0, 1.0, by = 0.1), labels = F, pos = 0, cex.axis = 0.05, tcl = 0.25) 
axis(2, at = seq(-1.0, 1.0, by = 0.1), labels = F, pos = 0, cex.axis = 0.05, tcl = 0.25) 

enter image description here enter image description here

+2

はあなたを持っている:あなたは、そのグリフを持っているフォントに変更する必要があります(私は、Tiを理解し、少なくともとして。) 'cairo_pdf'のような別のpdfデバイスを試しましたか? –

+0

私は「間違っている」と思われるものは見つけられませんか? –

+0

私はcairo_pdfを試しましたが、上記のように 'plot'コマンドを実行するとエラーが発生します。 –

答えて

4

問題は、デフォルトのフォントに "‰"( "per mil"と言う)が\ u0028で生成されたグリフとしてないことです。

?pdfFonts 

これは私が問題はありません私のセットアップで得るものです

> str(pdfFonts("sans")) 
List of 1 
$ sans:List of 3 
    ..$ family : chr "Helvetica" 
    ..$ metrics : chr [1:5] "Helvetica.afm" "Helvetica-Bold.afm" "Helvetica-Oblique.afm" "Helvetica-BoldOblique.afm" ... 
    ..$ encoding: chr "default" 
    ..- attr(*, "class")= chr "Type1Font" 
+1

同じ出力が得られますが、問題はデフォルトのエンコーディングで再現できます。 – Roland

+0

私のMacでデフォルトのエンコーディングに問題はありませんでした。 (彼のOSを公開していないOPには役に立たないかもしれない。) –

+0

上記の彼のコメントは以下の通りです: 'Rバージョン2.14.0(2011-10-31)プラットフォーム:i386-pc-mingw32/i386(32ビット)' –

3

おそらくエンコーディングを変更する必要があります。

pdf('test.pdf',encoding="MacRoman") 
plot.new() 
text(0,labels="\u2030") 
dev.off() 

可能なエンコーディングのパッケージgrDevicesの「ENC」ディレクトリに調べて、それらを試してみる:私のマックでは、これは私に‰サインを取得します。

+0

私は自分のコードを試してみると 'text.default(0、labels ="‰ ")のエラー: が 'mbcsToSbcs'の' MacRoman 'を認識できませんでした。これが意味することとその解決方法に関する提案? –

+0

はい。 Macではなく、ウィンドウを使用しているため、別のエンコーディングを試す必要があります。 – Roland

+1

私の仕事でWindowsマシンをテストした後:あなたの問題を再現することはできませんし、Windows上で利用可能な 'MacRoman'をエンコードするコードもうまく動作します。最新のRバージョン(2.15.1)をインストールすることをお勧めします。問題が解決しない場合は、 'sessionInfo()'の出力全体を返してください。 – Roland

関連する問題