【发布时间】:2014-04-10 16:09:29
【问题描述】:
我想在绘图中添加格式化文本(标题、轴标签、图例等)。标准解决方案是例如
plot(1, 1, ylab=substitute(lambda[1]))
y 轴标签将是带有下标 1 的希腊字母 λ。这就是我想要的,但不幸的是它是硬连线的。我希望它灵活,即可以选择将文本作为函数的参数传递。因此,查看 r 帮助,我发现 substitute 的参数是一个表达式。所以我试过了
sometext <- "lambda[1]"
e <- parse(text="sometext")
plot(1, 1, ylab=substitute(e))
但是substitute 忽略了 e 是一个对象,只是将文本“e”打印为标签。所以我尝试了
plot(1, 1, ylab=eval(e))
这更好,因为eval 至少会评估表达式,但现在标签实际上是“lambda[1]”,即它不会被评估为带有下标的希腊字母 λ。
然后我明确指出'e'是一个表达式,
e <- expression(sometext)
并运行前两个绘图命令,但结果与以前相同。 我最接近我想要实现的目标是在做
plot(1, 1, ylab=substitute(var[i], list(var="lambda", i=1)))
其中至少 1 打印为下标,但打印的是文本 'lambda' 而不是希腊字母 λ。
关于如何实现第一个命令的功能但不是硬连线的任何建议?例如。使用字符串并以某种方式将其转换为正确的对象,以便正确显示?谢谢。
丹尼尔
【问题讨论】:
标签: r plot text-formatting