通过Rpy2在ggplot2图形中绘制希腊字母和纯文本

时间:2013-04-25 20:58:58

标签: python ggplot2 rpy2

如何在Rpy2中的ggplot2图中创建像"$\alpha$ + $\beta$ is my label"这样的x或y标签?我尝试使用r.expression

在地块上获取任何希腊字母
p = ggplot2.ggplot(mydata) + r.xlab(r.expression("alpha")) 

但这不起作用。希腊字母如何与常规文本一起绘制?

1 个答案:

答案 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)'))