我很努力让ggplot在非标准字符集[俄语]中正确显示轴标签。当使用这样的字符串时,ggplot标记轴例如utg-8在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代码不一致。在上面的例子中,问题仅限于轴标签。这是因为对于轴标签而言,字符串是从数据表中获取的,该数据表以某种方式处理不同的编码,以便将相同的行存储在字符串或矩阵中?
这听起来像你回答你的问题。你会提出解决'Sys.setlocale(“LC_CTYPE”,“russian”)作为答案,然后打开一个关于ggplot不一致的新问题吗?这也会让你的ggplot问题更受关注:) – Rilcon42