使用rpy2和ggplot2制作图表

时间:2013-06-14 10:33:57

标签: python r ggplot2 rpy2

我正在尝试使用rpy2在我的python管道中集成一些图形生成。在R里面生成的相同的PDF显然在rpy2中不起作用。这个简单的脚本将生成一个可读的PDF文件:

#!/usr/bin/env R
library(ggplot2)
library(datasets)
p = ggplot(mtcars, aes(wt, mpg)) + xlab('Weight (lb/1000)') + ylab('Miles/(US) gallon')
pdf(file='mtcars.pdf')
p + geom_point(aes(colour=factor(cyl)))
dev.off()

虽然等效的python代码产生的4 KB文件无法被任何PDF阅读器读取:

#!/usr/bin/env python
from rpy2 import robjects as ro
ro.r("library(ggplot2)")
ro.r("library(datasets)")
ro.r("p = ggplot(mtcars, aes(wt, mpg)) + xlab('Weight (lb/1000)') + ylab('Miles/(US) gallon')")
ro.r("pdf(file='mtcars.pdf')")
ro.r("p + geom_point(aes(colour=factor(cyl)))")
ro.r("dev.off()")

我正在使用:

* Python 2.7.3
* R 2.15.2
* rpy2 2.3.6
* ggplot2 0.9.3.1

为什么会发生这种情况?非常感谢。

1 个答案:

答案 0 :(得分:1)

  

为什么会发生这种情况?非常感谢。

永远不会绘制ggplot数字。在交互式R中,将某些内容返回到控制台print()它(在ggplot对象的情况下,它们被绘制)。您必须明确致电print()

您可能还想查看rpy2 documentation for ggplot2