python - 使用 rpy2 和 ggplot2 制作图表

标签 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

有什么想法为什么会发生这种情况吗?非常感谢您的帮助。

最佳答案

Any ideas why this is happening ? Help greatly appreciated.

ggplot 图形从未被绘制。在交互式 R 中,将某些内容返回到控制台将 print() 它(对于 ggplot 对象,它们会被绘制)。您必须显式调用 print()

您可能还想查看rpy2 documentation for ggplot2 .

关于python - 使用 rpy2 和 ggplot2 制作图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17106511/

相关文章:

python - tshark提供的原始数据是否完整?

r - 根据前一行的属性选择一行

r - 使用 ggplot2 的累积直方图

r - 向数据框添加新列的函数

r - 如何使用选项列表中的特殊符号作为名称?

r - ggplot geom_bar 其中 x = 多列

r - 在 ggplot 中为美学之外的组添加 hline

python 打印循环中的第一行

python - 使用 Jinja 遍历项目,在每第 5 个项目后添加 div

python - 如何将值列表提供给 tensorflow 中的占位符列表?