是否可以在IPython笔记本电脑上使用rpy2(调用ggplot2),然后保存它们(并像其他笔记本电脑一样在其他笔记本电脑上共享http://nbviewer.ipython.org/)?将rpy2 ggplots显示在笔记本中和/或以交互方式是否有任何挑战?如果有人能够提供一个示例会话并在ipython中使用rpy2在笔记本中创建一个ggplot2图的输出将会很有帮助。使用rpy2与IPython笔记本?
回答
它可能与使用rpy2的rmagic扩展。虽然你似乎需要print()
这个数字来显示它。以下是一个示例会话:http://nbviewer.ipython.org/5029692
如果您更愿意直接使用rpy2,则必须有可能。看看rpy2 documentation for ggplot2。要将它放入笔记本中,可以使用PNG/SVG设备,然后从Python端读取(这是rmagic的功能)。
这是写在没有在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)
这段代码是我第一次加载和使用rpy2的数据集。此页面的数据集无效:http://rpy.sourceforge.net/rpy2/doc-2.2/html/graphics.html#package-ggplot2 – zach 2013-03-20 21:49:37
@zach:R改变了它在内部处理数据集的方式,并且rpy2适应了这些变化(尽管直接结果不是最友好的界面)。我不能排除在文档中有些地方没有更新,但这里的问题可能是您正在查看rpy2-2.2.x的文档,而可能使用rpy2-2.3.x。无论如何,看到一些固定的最好机会是报告问题(电子邮件,项目页面等)。 – lgautier 2013-03-20 22:26:25
谢谢。有时很难甚至知道问题是什么.....但我会更好地报告。感谢您的杰出工作。 – zach 2013-03-20 22:42:53
- 1. 使用rpy2与内联rmagic与jupyter笔记本
- 2. 使用PIP安装IPython的笔记本
- 3. 在代理中使用iPython笔记本
- 4. 使用pip安装ipython笔记本+ matplotlib
- 5. Django_extensions无法使用iPython笔记本
- 6. IPython笔记本在生产
- 7. Ipython笔记本丢失
- 8. 在IPython中/ Jupyter笔记本
- 9. 无法创建一个“记事本”使用IPython的笔记本
- 10. IPython笔记本错误:加载笔记本时出错
- 11. IPython的笔记本电脑连接到外部的笔记本
- 12. 无法打开IPython笔记本中的现有笔记本
- 13. IPython的笔记本版本的问题(IPython的0.13)
- 14. IPython笔记本卡在登录
- 15. IPython笔记本中的Pyzmq错误
- 16. 启动iPython笔记本时出错
- 17. iPython笔记本熊猫不是阴谋
- 18. Ipython笔记本缓存问题
- 19. IPython笔记本中的pprint和ipdb
- 20. Ipython笔记本 - 乳胶内降价表
- 21. 如何包含iPython笔记本
- 22. 相当于Ipython笔记本中的raw_input
- 23. IPython笔记本Sympy数学渲染
- 24. IPython的笔记本图像PDF转换
- 25. ipython笔记本中有多少内核
- 26. IPython笔记本命令返回错误
- 27. 从iPython笔记本下载CSV
- 28. 连接到远程iPython笔记本
- 29. 启动IPython笔记本MPI群集
- 30. “load_breast_cancer”无法加载IPython的笔记本
我不想用'rmagic'我想直接使用rpy2,但我没有看到笔记本的一个例子与rpy2在页面上你链接到从文档...不知道如何绘制到设备,然后再读回来?它不是自动的吗? – user248237dfsf 2013-02-25 15:47:31
rmagic是使用png设备和读取输出的自动化工具。如果你更愿意直接使用rpy2,你必须自己去做。你可以看看[rmagic的源代码](https://github.com/ipython/ipython/blob/master/IPython/extensions/rmagic.py)。 – 2013-02-26 13:03:08
这听起来像是一个重大的... ...不值得,但它意味着ipython笔记本基本上没有用于使用ggplot/rpy2而不是matplotlib的人 – user248237dfsf 2013-02-27 06:48:21