将轴文字方向更改为从右到左

时间:2018-12-24 15:11:21

标签: r ggplot2 arabic right-to-left hebrew

在从右到左的语言(例如阿拉伯语和希伯来语)中,如何调整ggplot2文本元素的文本方向? 请注意,我不是在说对齐(它受hjust控制,而是在其中呈现文本的实际方向(等效于CSS direction: rtl;)。 因此,这不是this question的复制。

这是一个最小的可重现示例:

library(ggplot2)
library(tibble)

example1 <- tribble(
  ~item,
  "האם יורד גשם?"
)

# or as ordinary data frame, to avoid 'tibble' dependency
example1 <- data.frame(item = "האם יורד גשם?")

ggplot(example1, aes(item)) + 
  geom_bar() + 
  theme(axis.text.x = element_text(size = 25))

我已经放大了轴文字x来说明我的意思。 该代码将产生以下图表,请注意,问号在文本的右侧,我希望它出现在文本的左侧。在小标题example1中没问题(即使看起来“相反”,问号也会使句子结束。)

Change direction of element_text

2 个答案:

答案 0 :(得分:1)

您可以将Unicode控制字符用于“从右向左嵌入”(“将以下文本从右向左嵌入”):u202B。参见Explicit Directional Embeddings

example1$item <- paste("\u202B", example1$item)
ggplot(example1, aes(item)) + 
   geom_bar() +
   theme(axis.text.x = element_text(size = 25))

enter image description here

答案 1 :(得分:0)

您必须更改原稿中的问号,然后它才能正常显示:

library(ggplot2)
library(tibble)
example1 <- tribble(
  ~item,
  "?האם יורד גשם"
)

ggplot(example1, aes(item)) + 
geom_bar() + 
theme(axis.text.x = element_text(size = 25))