rgl plot3d中的Unicode

时间:2013-10-09 23:59:31

标签: r unicode rgl

我是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

1 个答案:

答案 0 :(得分:1)

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

另见:http://www.smnd.sk/kotanyi/index.php?page=rgl