我想制作一个图块,该图的轴标题是一个较薄的空间,作为一千个分离器,并将该图作为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()