Изменить направление текста на оси справа налево - PullRequest
0 голосов
/ 24 декабря 2018

На языках справа налево, таких как арабский и иврит, как мне настроить направление текста для ggplot2 текстовых элементов?Обратите внимание, что я говорю не о выравнивании (которое контролируется hjust, а о фактическом направлении (эквивалентном CSS direction: rtl;), в котором отображается текст. Следовательно, это не репликация этот вопрос .

Вот минимальный воспроизводимый пример:

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 голосов
/ 25 декабря 2018

Вы можете использовать управляющий символ Unicode для «ВСТАВКА ВПРАВО К СЛЕДУЮЩЕМУ» («Обработайте следующий текст как встроенный справа налево»): u202B.См. Явные Направленные Внедрения .

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

enter image description here

0 голосов
/ 24 декабря 2018

Вы должны поменять знак вопроса в оригинале, и тогда он получится нормально:

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

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