2

我对 R 和 rgl 包都是新手,并且整天都在寻找解决方案......

我正在尝试将 rgl 的 text3d 函数与 unicode 文本一起使用。我在 2D 中绘制相同的字符(使用 text())没有问题,但在 3D 中,它不是渲染符号,而是写出 UTF-8 字符代码(除非它们是 ascii 字符)。

我正在从文件中读取数据,其中“元音”列包含要绘制的符号(例如“ei ə ɪ ɒ”等),列“F1”、“F2”和“F3”包含要绘制的值绘制。使用 read.delim 读入该文件,其中 encoding="UTF-8"; 检查 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
t

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);

二维绘图(作品):

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”和“在par3d(useFreeType = TRUE) : 未找到字体系列“sans”,使用“位图””...

花了几个小时与 R 争夺 freetype,我希望这里有人能告诉我 freetype 是否会解决这个问题??!如果是的话,关于“设置环境变量 LIB_FREETYPE 以提供安装目录的完整路径”(来自rgl README)试图告诉我做什么的提示将不胜感激!

谢谢你。

我的会话信息:

R 版本 3.0.2 (2013-09-25) 平台:x86_64-w64-mingw32/x64 (64-bit)

语言环境: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 graphics grDevices utils datasets methods base

其他附加包:rgl_0.93.975

4

1 回答 1

1

您需要安装 FreeType。确保您已安装 FreeType 和 FreeType Open GL 库,然后在 R 中重新安装 rgl,然后一切正常。

参见这里:http ://www.smnd.sk/kotanyi/index.php?page=rgl

于 2014-08-29T15:00:44.467 回答