在IPython笔记本中使用rpy2?

前端之家收集整理的这篇文章主要介绍了在IPython笔记本中使用rpy2?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

是否可以在IPython笔记本中使用rpy2(调用ggplot2),然后保存它们(和其他笔记本http://nbviewer.ipython.org/一样在NBViewer上共享)?让rpy2 ggplots出现在笔记本中和/或交互式是否有任何挑战?如果有人能够在IPython中使用rpy2提供示例会话及其在笔记本中制作ggplot2数字的输出,将会很有帮助.

最佳答案
这是在没有查看rmagic中的代码的情况下编写的.
他们有一个更聪明的方法(我有11行代码).

import uuid
from rpy2.robjects.packages import importr 
from IPython.core.display import Image

grdevices = importr('grDevices')
def ggplot_notebook(gg,width = 800,height = 600):
    fn = '{uuid}.png'.format(uuid = uuid.uuid4())
    grdevices.png(fn,width = width,height = height)
    gg.plot()
    grdevices.dev_off()
    return Image(filename=fn)

尝试一下:

from rpy2.robjects.lib import ggplot2
from rpy2.robjects import Formula
datasets = importr('datasets')
mtcars = datasets.__rdata__.fetch('mtcars')['mtcars']
p = ggplot2.ggplot(mtcars) + \
    ggplot2.aes_string(x='mpg',y='cyl') + \
    ggplot2.geom_point() + \
    ggplot2.geom_smooth() + \
    ggplot2.facet_wrap(Formula('~ am'))

ggplot_notebook(p,height=300)

猜你在找的Python相关文章