如何在Jupyter笔记本中使用rpy2绘制(内联)?

我正在学习在Jupyter笔记本中使用rpy2.我在策划方面遇到了麻烦.当我使用rpy2 docs中的这个例子进行交互式工作时:

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")

Jupyter用情节打开一个新窗口.窗口“标题”显示为:R图形:设备2(ACTIVE)(无响应).我的Jupyter内核是活跃的.当我尝试用绘图关闭窗口时,Windows声称python.exe没有响应,如果我强制关闭,则jupyter内核重新启动.

第一:如何使rpy2图内联?第二:如果无法进行内联绘图,如何在没有python.exe无响应的窗口中获取绘图?

最佳答案 这似乎是你的问题的答案: https://bitbucket.org/rpy2/rpy2/issues/330/ipython-plotting-wrapper

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))
点赞