R 中从右到左的语言支持,使用 Mac

问题描述 投票:0回答:4

我想知道在使用 Mac 时是否有支持 R 中从右到左语言的方法

例如假设以下代码:

x <- data.frame(a=runif(10),b=runif(10))
ggplot(x, aes(a,b)) + geom_point() + xlab("سلام")

结果如下:

enter image description here

在这里,我尝试将 x 标签更改为波斯语/阿拉伯语单词(มก = Hello)。虽然在代码中正确显示(使用 R-Studio),但在图表中,มมท 的字符以相反的顺序显示(从左到右)。

两个连续字母之间的链接(即 Ë 连接到 ă 将是 Ë )也被破坏。

你知道如何解决吗?

更新

根据@agstudy的回答,我发现Ubuntu下的R是完全可以的。但是我不知道如何在具有更新版本的 R 和 R-Studio 的 Mac (OS X 10.9.1) 中解决该问题

r unicode ggplot2 right-to-left
4个回答
9
投票

对我来说效果很好。我只是更改标签的大小以更好地显示它。

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"))

enter image description here

我正在使用:

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)

0
投票

我对希伯来字母也有同样的问题,我设法通过从 Excel 文件中读取标签来解决这个问题,而不是直接将其输入到 R studio 中。只要您不需要将字母与数字混合在一起,这种方法就有效,在这种情况下事情就会开始变得混乱。 例如:


0
投票

我知道这是一个老问题,但我最近写了一个 R 包来处理它。它是一些 python 代码的简单 R 包装器,因为在 mac 中使用 python 时也会出现此问题。该包反转阿拉伯字符串,然后使用 Abdullah Diab 的 python-arabic-reshaper 模块正确重新连接字母。

我的包裹在这里。 Abdullah Diab 的模块(适用于 Python)位于here


0
投票

这个问题可能很老了,但我最近遇到了类似的问题,并花了两天时间试图找到解决方案。我尝试了回复中建议的各种解决方案,例如使用

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"
) 
© www.soinside.com 2019 - 2024. All rights reserved.