是否可以在IPython笔记本中使用rpy2(调用ggplot2),然后保存它们(和其他笔记本http://nbviewer.ipython.org/一样在NBViewer上共享)?让rpy2 ggplots出现在笔记本中和/或交互式是否有任何挑战?如果有人能够在IPython中使用rpy2提供示例会话及其在笔记本中制作ggplot2数字的输出,将会很有帮助.
最佳答案
这是在没有查看rmagic中的代码的情况下编写的.
他们有一个更聪明的方法(我有11行代码).
他们有一个更聪明的方法(我有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)