我是R的新手,rgl包并且整天都在寻找解决方案......
我正在尝试将rgl的text3d函数与unicode文本一起使用。我在2D中绘制相同的字符没有问题(使用text()),但在3D中,它不是渲染符号而是写出UTF-8字符代码(除非它们是ascii字符)。
我正在读取文件中的数据,其中“元音”列包含要绘制的符号(例如“eiɪɪɒ”等),而cols“F1”,“F2”和“F3”包含要绘制的值。使用带有encoding =“UTF-8”的read.delim读入文件;检查RGui中的数据显示任何非ascii符号的UTF-8字符代码。
元音,F1,F2,F3
我,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
ɑ,629.1691413,1064.047107,2910.997552
ɪ,375.0097039,2091.996102,2648.991664
这是我一直在测试的代码:
d <- read.delim("my.filename", header=TRUE, sep=",", encoding="UTF-8")
以3D绘图(为所有非ASCII字符绘制“&lt; \ U + 0252&gt;”等内容(在此处转义!):
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”和“par3d”(useFreeType) = TRUE):找不到字体系列“sans”,使用“bitmap”“...
花了几个小时与R争夺freetype,我希望有人能告诉我freetype是否能解决问题??!如果是的话,提示“设置环境变量LIB_FREETYPE以提供安装目录的完整路径”(来自rgl README)试图告诉我这样做会非常感激!
谢谢。
我的sessionInfo:
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 graphics grDevices utils数据集方法库
其他附件包: rgl_0.93.975
答案 0 :(得分:1)
您需要安装FreeType。 确保安装了FreeType和FreeType Open GL库,然后在R中重新安装rgl,然后一切正常。