非標準の文字セット[ロシア語]で軸ラベルが正しく表示されるように苦労しています。このような文字列を使用する場合、ggplotは軸をラベルします。utf-8 in 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コードを受け入れるのかについて、なぜR/gplotが矛盾しているのかをまだ分かりません。上記の例では、問題は軸ラベルに限られていました。これは、軸ラベルの場合、文字列が文字列や行列に格納されている場合とは異なる方法でエンコーディングを扱うデータテーブルから文字列がフェッチされたためですか?
それはあなたがあなたの質問に答えのように聞こえます。 'Sys.setlocale(" LC_CTYPE "、" russian ")の答えを答えとして提案し、ggplotの不一致に関する新しい質問を開きますか?これはあなたのggplot質問にもっと注意を払うでしょう:) – Rilcon42