20

非標準の文字セット [ロシア語] を使用しているときに、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")

問題を解決します。ただし、どのような状況で UTF8 コードを受け入れるかについて R/ggplot が一貫していない理由はまだよくわかりません。上記の例では、問題は軸ラベルに限定されていました。これは、軸ラベルの場合、文字列がデータ テーブルから取得されたためで、同じ行が文字列または行列に格納されている場合とは異なる方法でエンコードを処理するためですか?

4

1 に答える 1