是否可以在IPython笔记本中使用rpy2(调用ggplot2),然后保存它们(并在其他笔记本http://nbviewer.ipython.org/上与NBViewer共享)?让rpy2 ggplots出现在笔记本中和/或交互式是否有任何挑战?如果有人可以在IPython中使用rpy2提供示例会话及其在笔记本中制作ggplot2数字的输出,将会很有帮助。
答案 0 :(得分:3)
这是在没有查看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)
答案 1 :(得分:1)
rmagic扩展可以使用rpy2。不过,您似乎需要print()
这个数字才能显示出来。这是一个示例会话:http://nbviewer.ipython.org/5029692
如果您希望直接使用rpy2,则必须可以。看看rpy2 documentation for ggplot2。要将它放入笔记本中,您可以绘制到PNG / SVG设备,然后从Python端读取它(这就是rmagic所做的)。