在非标准字符集[俄语]中,我很难让ggplot正确显示轴标签 . 当使用这样的字符串时,ggplot标记轴,例如
\ U 0441 U 043D U 0433
当我将名称保存为单独的变量并使用 geom_text()
将它们绘制为标签时,Ggplot会正确编码
转换数据帧的格式也没有多大帮助: db$variable=sapply(db$variable,function(row) iconv(row,to='UTF-8'))
导致加扰字符,可能是因为数据已经在数据帧中编码为UTF-8
我可以使用 scale_x_discrete( labels=names)
使用自定义轴来完成这项工作,但这有点笨拙,特别是当数据缺少值时 . 有没有办法让ggplot首先正确显示这些字符?
edit
看起来有点头疼
Sys.setlocale("LC_CTYPE","russian")
将解决问题 . 我仍然不明白为什么R / ggplot在什么情况下会接受UTF8代码是不一致的 . 在上面的示例中,问题仅限于轴标签 . 这是因为对于轴标签而言,字符串是从数据表中提取的,如果相同的行存储在字符串或矩阵中,它会以某种方式处理不同的编码?
1 回答
我想这已经在
ggplot
的最新版本中得到了解决 .结果在适当的情节: