r图中的Unicode字符-PDF设备



我想制作一个图块,该图的轴标题是一个较薄的空间,作为一千个分离器,并将该图作为pdf从R中保存为R。我会格式化这样的数字:

string <- "100u2009000"
string
[1] "100 000"

在这里,r-console显示了薄空字符" u2009"的正确表示(尽管在网络上看起来像一个完整的空间(,则如果我绘制并将其发送到这样的PDF:

pdf("foo.pdf")
plot(1,1, axes = FALSE, xlab = "", ylab = "", col = "#FFFFFF")
text(1, 1, string)
dev.off()

我收到一堆警告:

Warning messages:
1: In text.default(1, 1, string) :
  conversion failure on '100 000' in 'mbcsToSbcs': dot substituted for <e2>
2: In text.default(1, 1, string) :
  conversion failure on '100 000' in 'mbcsToSbcs': dot substituted for <80>
3: In text.default(1, 1, string) :
  conversion failure on '100 000' in 'mbcsToSbcs': dot substituted for <89>
4: In text.default(1, 1, string) :
  font metrics unknown for Unicode character U+2009
5: In text.default(1, 1, string) :
  conversion failure on '100 000' in 'mbcsToSbcs': dot substituted for <e2>
6: In text.default(1, 1, string) :
  conversion failure on '100 000' in 'mbcsToSbcs': dot substituted for <80>
7: In text.default(1, 1, string) :
  conversion failure on '100 000' in 'mbcsToSbcs': dot substituted for <89>

,在结果的pdf中,数字看起来像这样: 100...000

我看到我可以向PDF设备提供一个编码论点,但我尚未设法使其工作。

您可以改用cairo_pdf设备:

string <- "100u2009000"
string
cairo_pdf("foo.pdf")
plot(1,1, axes = FALSE, xlab = "", ylab = "", col = "#FFFFFF")
text(1, 1, string)
dev.off()

这对我有用并产生PDF。

您也可以使用showtext渲染文本,如果您使用PDF,可以保证生成矢量图形。文本已转换为形状,这意味着您不能再将其选择为文本。

library(showtext)
showtext_auto()
string <- "100u2009000"
string
pdf("bar.pdf")
plot(1, 1, axes = FALSE, xlab = "", ylab = "", col = "#FFFFFF")
text(1, 1, string, family = "wqy-microhei")
dev.off()

最新更新