私はRとrglパッケージが初めてで、一日中解決策を探してきました...
Unicode テキストで rgl の text3d 関数を使用しようとしています。2D (text() を使用) で同じ文字をプロットしても問題ありませんが、3D では、シンボルをレンダリングする代わりに、UTF-8 文字コードを書き出すだけです (ASCII 文字でない限り)。
列「母音」にプロットする記号(「ei ə ɪ ɒ」など)が含まれ、列「F1」、「F2」、「F3」に値が含まれるファイルからデータを読み込んでいますプロットされます。ファイルは、encoding="UTF-8" の read.delim で読み込まれます。RGui のデータを調べると、ASCII 以外のシンボルの UTF-8 文字コードが表示されます。
サンプルデータ (カンマ区切り)
vowel,F1,F2,F3
i,424.1352452,1985.143387,2549.272611
e,515.0401373,1693.077496,2534.527142
ə,408.8233704,1589.12993,2567.448424
ɒ,490.6565129,1070.564989,2590.467597
ɪ,405.5223379,1665.733731,2261.069994
u,360.0803517,1798.355786,2354.845875
ɜ 、541.6360766,1323.593646,2435.121753
皆 、
718.8871543,1139.013741,2820.694337
これは私がテストしてきたコードです:
d <- read.delim("my.filename", header=TRUE, sep=",", encoding="UTF-8")
3D でのプロット (すべての非 ASCII 文字に対して "<\U+0252>" など (ここでエスケープ!) などをプロット):
library(rgl)
cols <- c("F1", "F2", "F3");
plot3d(d[,cols], xlab="F1", ylab="F2", zlab="F3", type="n");
text3d(d[,cols], col=1, text=d$vowel);
2Dでのプロット(作品):
cols <- c("F1", "F2");
plot(d[,cols], xlab="F1", ylab="F2", type="n");
text(d[,cols], col=1, labels=d$vowel);
OpenGLと何か関係がありますか?問題が解決することを期待して freetype をインストールしましたが、R を指定することができなかったので、「par3d(useFreeType = TRUE) : FreeType not supported in this build」および「In par3d(useFreeType)」という警告が表示されます。 = TRUE) : フォント ファミリー "sans" が見つかりません。"bitmap" を使用しています...
freetype をめぐって R と数時間戦ってきたので、freetype で問題が解決するかどうか、ここの誰かが教えてくれることを期待していました??! はいの場合、「環境変数 LIB_FREETYPE を設定して、インストール ディレクトリへのフル パスを指定する」( rgl READMEから) が何をするように指示しようとしているのかについてのヒントをいただければ幸いです。
ありがとうございました。
私のセッション情報:
R バージョン 3.0.2 (2013-09-25) プラットフォーム: x86_64-w64-mingw32/x64 (64 ビット)
ロケール: LC_COLLATE=English_United Kingdom.1252
LC_CTYPE=English_United Kingdom.1252
LC_MONETARY=English_United Kingdom.1252
LC_NUMERIC=C
LC_TIME=English_United Kingdom.1252
付属の基本パッケージ: stats グラフィックス grDevices utils データセット メソッド base
その他の添付パッケージ: rgl_0.93.975