【问题标题】:Using rpy2 with ggplot2 to make graphs使用 rpy2 和 ggplot2 制作图表
【发布时间】:2013-06-10 23:40:14
【问题描述】:

我正在尝试使用 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

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

【问题讨论】:

    标签: python r ggplot2 rpy2


    【解决方案1】:

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

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

    您可能还想查看rpy2 documentation for ggplot2

    【讨论】:

      猜你喜欢
      • 2013-03-06
      • 2015-10-17
      • 2016-05-11
      • 2016-06-23
      • 2012-03-21
      • 2020-05-06
      • 2021-04-24
      • 2013-04-19
      • 2019-11-01
      相关资源
      最近更新 更多