我想知道在使用 Mac 时是否有支持 R 中从右到左语言的方法
例如假设以下代码:
x <- data.frame(a=runif(10),b=runif(10))
ggplot(x, aes(a,b)) + geom_point() + xlab("سلام")
结果如下:
在这里,我尝试将 x 标签更改为波斯语/阿拉伯语单词(มก = Hello)。虽然在代码中正确显示(使用 R-Studio),但在图表中,มมท 的字符以相反的顺序显示(从左到右)。
两个连续字母之间的链接(即 Ë 连接到 ă 将是 Ë )也被破坏。
你知道如何解决吗?
更新
根据@agstudy的回答,我发现Ubuntu下的R是完全可以的。但是我不知道如何在具有更新版本的 R 和 R-Studio 的 Mac (OS X 10.9.1) 中解决该问题
对我来说效果很好。我只是更改标签的大小以更好地显示它。
library(ggplot2)
x <- data.frame(a=runif(10),b=runif(10))
ggplot(x, aes(a,b)) +
geom_point()+ xlab('سلام') +
theme( axis.title=element_text(size=100,face="bold"))
我正在使用:
other attached packages:
[1] ggplot2_0.9.3.1
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)
在以下情况下也能正常工作:
R version 3.0.3 (2014-03-06)
Platform: x86_64-pc-linux-gnu (64-bit)
这个问题可能很老了,但我最近遇到了类似的问题,并花了两天时间试图找到解决方案。我尝试了回复中建议的各种解决方案,例如使用
cairo_pdf
,但它们在 Windows 上都不适合我。
我意识到我需要找到一种不会将文本转换为字形的图形设备。幸运的是,
svglite
包正是这样做的。然而,将 svg
文件合并到 LaTeX 文档中又带来了另一个挑战。
嗯,这是一个解决方案:
current_plot_hook <- knit_hooks$get('plot')
knit_hooks$set(plot = function(x, options) {
res <- current_plot_hook(x, options)
filename <- file.path(options$fig.path, paste0(options$label,"-", options$fig.num))
filenameext <- paste0(filename, ".svg")
rsvg::rsvg_pdf(svg = filenameext,
file = paste0(filename, ".pdf"),
height = options$fig.height * 92,
width = options$fig.width * 92)
res
})
opts_chunk$set(
dev = "svglite"
)