7

我想在 R 中的情节图例中添加一个有两个字母作为下标的 Unicode 字符。该字符是带有重音符号 (ř) 的 r,两个字母是 i 和 j。

我已经看过这个问题:Unicode character with superscript并试图调整我的问题的答案。

这是我尝试过的:

plot(1,pch=NA,ylab="",xlab="",axes=F)
legend("top",legend=paste("1-","\u{0159}"),bty ="n",bg = "white",cex=2)
legend("center",legend=paste("1-","\u{0159}","\u{0069}","\u{006A}"),bty="n",bg = "white",cex=2)
legend("bottomleft",legend=expression("1-"*"\u0159"["\u0069"*"\u006A"]),bty="n",bg = "white",cex=2)
legend("bottomright", legend = quote("1-" *"\u0159"["\u0069"*"\u006A"]),bty="n",bg = "white",cex=2)

结果图可以在下面找到

在此处输入图像描述

Unicode 字母和下标都可以单独使用,但不能一起使用。paste() 与 [ ] 的任意组合确实会返回错误,但我认为这是可以预期的,因为 paste 无法处理下标的 [ ]。

CRAN上的常见问题解答网站可能会在我使用 Windows 时给出提示,但我不确定如何实现:

3.6 我在 R 控制台中看不到带有重音符号的字符,例如在 ?text 中。

您需要在 Rconsole(参见 Q5.2)中指定支持使用中的编码的字体。这在早期版本的 Windows 中曾经是一个问题,但现在很难找到没有的字体。

Rterm 中对这些字符的支持取决于运行它的环境(终端窗口和 shell,包括区域设置和代码页设置)以及终端窗口使用的字体。这些通常在旧版 DOS 设置上,需要更改。

4

1 回答 1

4

它与系统语言环境有关,例如,如果您尝试

# intToUtf8(345)
# [1] "ř"
# iconv(intToUtf8(345), "utf-8", localeToCharset())
# [1] "r"

这应该可以解决它(我使用的是捷克语,但其他语言环境可能也可以):

Sys.setlocale("LC_CTYPE", "czech")
# [1] "Czech_Czech Republic.1250"
text(..., labels = quote("\u{0159}"[ij]))
于 2015-03-23T15:57:38.127 回答