R:如何在图中的负轴上使用正确的减号

Man*_*auf 4 plot r typesetting mathematical-typesetting

我收到了对我提交出版的图的评论,通过测试才意识到一些我之前不知道的事情:当使用位图驱动程序时,R 似乎使用连字符而不是正确的减号来表示轴上的负值。有什么办法可以纠正吗?

library(extrafont)
loadfonts(device="win", quiet=TRUE)
png("Test.png", family="Helvetica", width=5, height=5, units="in", res=300)
plot(-3:3, -3:3)
text(-2, 2, labels=("\u2010 Hyphen"), pos=4)
text(-2, 1.5, labels=("\u002d Hyphen-Minus"), pos=4)
text(-2, 1, labels=("\u2212 Minus"), pos=4)
dev.off()
Run Code Online (Sandbox Code Playgroud)

如果您查看图像,轴上的负数显然用连字符而不是减号错误地标记。在此输入图像描述

使用pdf()-driver 时,负值正确使用减号。我知道对于pdf()-driver,这可以通过使用 来更改cairo-pdf()。但是,在- 或 -驱动程序中使用另一种类型(例如type="windows")不会将连字符更改为减号。png()tiff()

有没有办法使用 bitmab 驱动程序对负轴值使用正确的减号?

pas*_*cal 8

基本 r 中的情况相当复杂。以下代码在绘图本身之后打印轴。通过查找和替换,轴标签中的连字符被替换为减号。

plot(-3:3, -3:3, xaxt="n", yaxt="n", xlab = "\u22123:3", ylab = "\u22123:3")

xat <- axTicks(1, usr=par("usr")[1:2])
labs <- gsub("-", "\U2212", print.default(xat))
axis(1, at=xat, labels=labs)
yat <- axTicks(2, usr=par("usr")[1:2])
labs <- gsub("-", "\U2212", print.default(yat))
axis(2, at=xat, labels=labs)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述