加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在IPython笔记本中使用rpy2?

发布时间:2020-12-16 21:53:07 所属栏目:Python 来源:网络整理
导读:是否可以在IPython笔记本中使用rpy2(调用ggplot2),然后保存它们(和其他笔记本http://nbviewer.ipython.org/一样在NBViewer上共享)?让rpy2 ggplots出现在笔记本中和/或交互式是否有任何挑战?如果有人能够在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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读