【问题标题】:Using "expression" in R rgl axis labels在 R rgl 轴标签中使用“表达式”
【发布时间】:2015-05-01 13:57:07
【问题描述】:

rgl 例程是否接受使用希腊字母的“表达式”和轴标签的上/下标?

类似

xlab=(expression(paste("Lyman ",alpha,)))

在正常的绘图调用中效果很好,但似乎在 plot3d 和 decorate3d 中显示“(粘贴(”Lyman“,alpha,)”作为我的轴标签。如果没有,我如何将这些字符添加到我的 3D 散点图中使用 plot3d 生成?

【问题讨论】:

  • 基本上没有。 pkg:rgl 的作者和维护者表示,将 plotmath 功能构建到该软件包中会很好,但太难了。如果您需要准确的建议,您需要告诉我们您使用的字体(这需要知道哪种图形设备)。
  • 我想我可能会想出一个笨拙的答案,但基本上都失败了。邓肯·默多克(Duncan Murdoch)过去有时建议使用您已将所需符号位图映射到的“精灵”。
  • 好的。可耻,但感谢您澄清这是不可能的。我只需要使用较小的包装粘贴标签。
  • 这是我为想要浮动 rgl 传奇的人敲定的:stackoverflow.com/questions/19045208/…。有时可以构建使用 UTF-8 或 Unicode 打印出希腊语的字符值。这需要知道 RGL 字体中的字形。在我的控制台字体中,我得到了小写的希腊语:intToUtf8(945:960) [1] "αβγδεζηθικλμνξοπ"
  • Unicode 现代希腊语:alanwood.net/demos/symbol.html#s0370(小写希腊语也以 945 开头。)

标签: r graphics 3d rgl


【解决方案1】:

在我的系统(OSX 10.7.5,R 3.1.2)上,我得到了一个作为 xlab 的 alpha 版本:

require(rgl)
plot3d(1,1,1,xlab=intToUtf8(0x03B1L) )

并且粘贴到普通文本也成功:

plot3d(1,1,1, xlab=paste("Lyman ", intToUtf8(0x03B1L) ) )

【讨论】:

  • 这也适用于我的 Mac(OS X 10.10.3、R3.1.2),谢谢。但是在我的 Windows 7 机器(R3.0.1)上,字母字符只是显示为“a”。如上所述,我可以看到带有intToUtf8(945:960) 的小写希腊字母,但它们不会显示在 Windows 下的 3d 绘图窗口中。顺便说一句,上标和下标有类似的技巧吗?
  • 正如我所写,您需要知道正在使用什么字体,这取决于设备。我建议您执行 rglFonts() 然后使用points 的帮助页面中提供的工具以可用字体显示文本。如果您发现我研究的内容很有用,您至少应该支持这个答案,即使它不完整且不“值得检查”。
  • 您应该能够将 Amaya 字体(?rglFonts 页面上的链接)安装到您的 ../library/rgl/fonts/ 中(无论您的 Windows 设备有其库,如果您不知道,请使用 @987654327 @ 找到它)然后执行该帮助页面底部的代码。
  • 抱歉@BondedDust,由于我是论坛的新手,所以无法投票给您,但非常感谢您的帮助。
  • 好吧,你已经尽力了。我已对您的问题投了赞成票,在 15 个代表处,您将能够对您将来遇到的任何有用的问题进行投票。 (我很惊讶原始新手没有获得支持。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
相关资源
最近更新 更多