Я изо всех сил пытаюсь заставить ggplot правильно отображать метки оси, когда в нестандартном наборе символов [Русский]. при использовании таких строк метки меток ggplot, например.
\ U + 0441 U + 043D U + 0433
Ggplot получает право кодирования, когда я сохраняю имена как отдельную переменную и рисую их как метки с помощью geom_text()
преобразование форматирования фреймворка не очень помогает:
db$variable=sapply(db$variable,function(row) iconv(row,to='UTF-8'))
приводит к скремблированным символам, по-видимому, потому, что данные уже закодированы как UTF-8 в фрейме данных
Я могу сделать эту работу, используя пользовательскую ось с помощью scale_x_discrete( labels=names)
, но это немного громоздко, особенно когда у данных отсутствуют значения. Есть ли способ заставить ggplot правильно отображать эти символы?
изменить
После некоторой царапины головы кажется
Sys.setlocale("LC_CTYPE","russian")
решит проблему. Я до сих пор не понимаю, почему R/ggplot не согласуется с тем, при каких обстоятельствах он будет принимать код UTF8. В приведенном выше примере проблема ограничивалась метками оси. Это потому, что для меток оси строка была взята из таблицы данных, которая каким-то образом имеет дело с кодировкой по-разному, если одни и те же строки хранятся в строке или матрице?