【发布时间】:2015-05-22 21:43:39
【问题描述】:
我想在 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 设置上,需要更改。
【问题讨论】:
-
使用您链接到的答案,这对我有用
plot.new(); text(0.5, 0.7, labels = quote("1 - " * '\u{0159}'[ij]))。您示例中的 3 和 4 也适用于我 -
@rawr 不幸的是,您的解决方案对我不起作用。我正在使用 RStudio,所以我也尝试使用纯 R,但也没有任何版本有效。
-
Nadja,您使用的是什么操作系统,作为您的最后两个示例和 rawr 的代码,都在 ubuntu 14.04,Rv3.1.3 上按预期呈现
-
@user20650 我使用的是 Windows 7
-
嗨@konvas;感谢您的建议,但同样的问题。我想知道这是否是语言环境或编码问题,但如果是这种情况,奇怪的是重音字母在没有下标的情况下按预期显示。
legend=quote("\u0159")显示重音字母,但添加下标legend=quote("\u0159"[i]) 会删除它。与 OP 一样,这不适用于 W7、R3.1.1。