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

标签 r plot 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()

如果您查看图像,轴上的负数显然用连字符而不是减号标记错误。 enter image description here

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

有没有什么方法可以使用 bitmab 驱动程序为负轴值使用正确的减号?

最佳答案

在 base r 中它相当复杂。以下代码在绘图本身之后打印坐标轴。通过 find&replace 将轴标签中的连字符替换为减号。

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)

enter image description here

关于R:如何在图中的负轴上使用正确的减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66077931/

相关文章:

r - 转换字符 (HH :MM) to Minutes

r - 如何通过计算现有列来创建新列

r - 如何借助 lmomco 函数在 R 中定义自己的 fitdistr 函数分布

regex - 在正则表达式匹配后的单词后面插入\n

r - 删除图中的文本

LaTeX:在页边空白处排版章节号

r - 在 R 中的简单 X-Y 图上叠加椭圆

python - Matplotlib 绘制日期时间图

html - 当字体上方有烦人的空间时使用 CSS 垂直对齐文本

latex - latex 中的排版问题/解决方案对(示例)