擅长:python、mysql、java
<p>我只通过NathanielSmith的名为<a href="http://bitbucket.org/njs/rnumpy/wiki/API" rel="nofollow">rnumpy</a>的出色的小模块使用rpy2(请参见rnumpy主页上的“API”链接)。有了这个你可以做:</p>
<pre><code>from rnumpy import *
r.library("ggplot2")
picpath = 'foo.png'
name = ["cat","dog","mouse"]
nums = [1.0,2.0,3.0]
r["dataf"] = r.data_frame(name=name, nums=nums)
r("p <- ggplot(dataf, aes(name, nums, fill=name)) + geom_bar(stat='identity')")
r.ggsave(picpath)
</code></pre>
<p>(我猜了一下你想让情节看起来怎么样,但你明白了。)</p>
<p>另一个非常方便的方法是从Python使用ipy_numpy模块进入“R模式”。(请参阅rnumpy主页上的“IPython集成”链接)。在</p>
<p>对于复杂的东西,我通常在R中建立原型,直到我完成了绘图命令。rpy2或rnumpy中的错误报告会变得相当混乱。在</p>
<p>例如,分配(或其他计算)的结果有时会打印出来,即使它应该是不可见的。这很烦人,例如在分配给大数据帧时。一个快速的解决方法是用一个计算结果较短的尾部语句结束有问题的行。例如:</p>
^{pr2}$
<p>(为了使rnumpy中一些反复出现的警告保持沉默,我编辑了rnumpy.py添加“from warnings import warn”并将“print”error in process_revents:ignored“”替换为“warn(“error in process_revents:ignored”)'。这样,每次会话我只看到一次警告。)</p>