如何在Rpy2中的ggplot2图中创建像"$\alpha$ + $\beta$ is my label"
这样的x或y标签?我尝试使用r.expression
:
p = ggplot2.ggplot(mydata) + r.xlab(r.expression("alpha"))
但这不起作用。希腊字母如何与常规文本一起绘制?
答案 0 :(得分:3)
R expression()
正在接受对象,调用或表达式并返回一个表达式(这是一种操纵未评估代码的方法)。 expression("alpha")
会返回字符串"alpha"
(就像在R expression("alpha")
中写一样。
获取表达式的一种方法是解析字符串。在问题中使用您的示例:
from rpy2.rinterface import parse
p = ggplot2.ggplot(mydata) + scale_x_continuous(parse("alpha"))
你是否想要将表达式(语法上有效的R代码)与一般文本(无法解析为代码,比如使用空格和标点符号)混合,你必须
在代码中使用R paste()
进行解析(这可能看起来很深奥,但这就是一种方式
必须在R中也这样做):
p = ggplot2.ggplot(mydata) + \
ggplot2.scale_x_continuous(parse('paste(alpha, " and ", beta)'))