9

を作成するための次のコードがありますplotx-に、その形式でプロットを保存したときに画面に表示されるものがy-axesありますが、プロットを。として保存したときは表示されません。symbolsJPEGPDF

\u2030PDFまたは問題の別の解決策で印刷される代替記号はありますか?正しい(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)

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

4 に答える 4

4

問題は、デフォルトのフォントに、\ 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"
于 2012-08-23T17:42:09.993 に答える
3

おそらくエンコーディングを変更する必要があります。私のマックでは、これは私に‰記号を取得します:

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

パッケージの「enc」ディレクトリでgrDevices使用可能なエンコーディングを探して、試してみてください。

于 2012-08-23T17:37:36.560 に答える
1

MACでPDF形式で保存するのと同じ問題がありました。ggsaveとMacRomanで節約しています。

ggsave("Name_of_your_file.pdf", #choose your own name
   encoding="MacRoman",
   width = 20, #size that you want
   height = 20, #size that you want
   units = "cm")

Rファイルを保存した場所にファイルが保存されます。

于 2020-08-02T09:01:49.430 に答える
-1

システムに必要なTrueFontファイルがあるかどうかに応じて[ヒント:showtextパッケージをインストールしてView(font_files()]を使用すると、次の方法で使用可能なUnicode文字をPDFファイルに取り込むことができます。

  1. 最初に「temp.png」などの一時ファイルにエクスポートします
  2. pdf()またはcairo_pdf()を使用してpdfファイルにエクスポートします。「UnicodeToPDF.pdf」と言います。
  3. grid.arrange(gridExtraから)、rasterGrob(gridから)、およびreadPNG(pngから)の使用を組み合わせて、temp.pngファイルをUnicodeToPDF.pdfファイルに挿入します。
  4. 「temp.png」ファイルを削除する
#--- A function to install missing packages and load them all
myfxLoadPackages = function (PACKAGES) {
  lapply(PACKAGES, FUN = function(x) {
    if (suppressWarnings(!require(x, character.only = TRUE))) {
      install.packages(x, dependencies = TRUE, repos = "https://cran.rstudio.com/")
    }
  })
  lapply(PACKAGES, FUN = function(x) library(x, character.only = TRUE))
}

packages = c("gridExtra","grid","png")
myfxLoadPackages(packages)

#--- The trick to get unicode characters being printed on pdf files:
#--- 1. Create a temporary file, say "temp.png"
#--- 2. Create the pdf file using pdf() or cairo_pdf(), say "UnicodeToPDF.pdf"
#--- 3. Combine the use of grid.arrange (from gridExtra), rasterGrob (from grid), and readPNG (from png) to insert the
#       temp.png file into the UnicodeToPDF.pdf file
Corrvalues = data.frame(X=seq(-0.8,0.8,0.2),
                        Y=seq(-0.8,0.8,0.2),
                        PCH=-c(10122:10130)) #--- This is equivalent to using unicode characters 10122-10130 (note the use of -)
#--- Refer to http://xahlee.info/comp/unicode_index.html to see more unicode character integers

png("temp.png", width=11, height=11, units="in", res=300)
par(mar=c(4,5,3,1) + 0.1)
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)
points(Corrvalues$X,Corrvalues$X,pch=Corrvalues$PCH,cex=2.75,col="#FF7F00")
dev.off()

pdf("UnicodeToPDF.pdf", width=11, height=11)
grid.arrange(
  rasterGrob(
    readPNG(
      "temp.png",
      native=F
    )
  )
)
dev.off()

file.remove("temp.png")

コンラッド・ルドルフのコメントをフォローアップするために、次の画像が追加されました。 ここに画像の説明を入力してください

于 2020-09-16T21:14:38.703 に答える