我很努力讓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