结合使用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

任何想法为什么会这样?帮助极大的赞赏。


鸿蒙传说
浏览 202回答 1
1回答

眼眸繁星

任何想法为什么会这样?帮助极大的赞赏。永远不会绘制ggplot图。在交互式R中,将某些内容返回到控制台print()(如果是ggplot对象,则会绘制它们)。您必须print()明确地打电话。您可能还需要查看rpy2文档中的ggplot2。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python