2013-04-25 44 views
0

在繪製圖形GGPLOT2希臘字母和文字說明我怎樣才能讓一個X或Y的標籤就像"$\alpha$ + $\beta$ is my label"在中Rpy2一個GGPLOT2情節?我試着讓使用r.expression情節任何希臘字母:通過Rpy2

p = ggplot2.ggplot(mydata) + r.xlab(r.expression("alpha")) 

但這不起作用。希臘字母如何與常規文字一起繪製?

回答

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()解析的代碼深奧,但是這就是方法之一 必須做我t在R以及):

p = ggplot2.ggplot(mydata) + \ 
    ggplot2.scale_x_continuous(parse('paste(alpha, " and ", beta)')) 
+0

謝謝 - 但那麼你如何將它與非分析文本?如果我嘗試'scale_x_continuous(解析(「阿爾法」)+「和」 +解析(「測試版」))'我弄,我混合類型的錯誤:'類型錯誤:不支持的操作數類型(S)爲+:「rpy2。 rinterface.SexpVector「和」 str'' – user248237dfsf 2013-04-25 23:48:18

+1

@ user248237dfsf - 我編輯的答案覆蓋情況。 – lgautier 2013-04-27 13:12:51

+0

謝謝!優秀,非常有幫助知道這一點 – user248237dfsf 2013-04-27 14:38:52