首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在木星笔记本中用rpy2绘制(内联)?

如何在木星笔记本中用rpy2绘制(内联)?
EN

Stack Overflow用户
提问于 2017-03-30 06:33:45
回答 3查看 2K关注 0票数 7

我正在学习如何在木星笔记本中使用rpy2。我在密谋上遇到麻烦了。当我使用rpy2 文档中的这个示例进行交互工作时:

代码语言:javascript
复制
from rpy2.interactive import process_revents
from rpy2.robjects.packages import importr
from rpy2.robjects.vectors import IntVector
process_revents.start()

graphics = importr("graphics")
graphics.barplot(IntVector((1,3,2,5,4)), ylab="Value")

朱庇特用情节打开了一扇新窗户。窗口的“标题”是:r Graphics: Device 2(活动)(没有响应)。我的木星内核很活跃。当我试图用图关闭窗口时,windows声称python.exe没有响应,如果我强制关闭,那么jupyter内核就会重新启动。

第一:如何使rpy2绘图内联?第二:如果不可能进行内联绘图,那么如何在不引起python.exe响应的情况下在窗口中获得绘图?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-18 11:55:19

看来这就是你问题的答案:https://bitbucket.org/rpy2/rpy2/issues/330/ipython-plotting-wrapper

代码语言:javascript
复制
with rpy2.robjects.lib.grdevices.render_to_bytesio(grdevices.png, width=1024, height=896, res=150) as img:
    graphics.barplot(IntVector((1,3,2,5,4)), ylab="Value")
IPython.display.display(IPython.display.Image(data=img.getvalue(), format='png', embed=True))
票数 3
EN

Stack Overflow用户

发布于 2020-08-21 10:29:17

我认为最干净的解决方案就是简单地使用%R魔术函数。它过去是IPython的一部分,但后来转移到rpy2,所以您必须首先将它作为扩展加载:

代码语言:javascript
复制
%load_ext rpy2.ipython
A = np.random.normal(100)
%R -i A hist(A)

绘制一个柱状图到木星控制台。

票数 2
EN

Stack Overflow用户

发布于 2019-11-26 10:38:01

这是克里斯蒂安的答案略显诡辩的版本,它将密谋和内联嵌入到同一个上下文管理器中:

代码语言:javascript
复制
from contextlib import contextmanager
from rpy2.robjects.lib import grdevices
from IPython.display import Image, display

@contextmanager
def r_inline_plot(width=600, height=600, dpi=100):

    with grdevices.render_to_bytesio(grdevices.png, 
                                     width=width,
                                     height=height, 
                                     res=dpi) as b:

        yield

    data = b.getvalue()
    display(Image(data=data, format='png', embed=True))

用法:

代码语言:javascript
复制
with r_inline_plot(width=1024, height=896, dpi=150):
    graphics.barplot(IntVector((1,3,2,5,4)), ylab="Value")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43110228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档