【问题标题】:why plot is not shown properly in Mac when using rpy2?为什么使用 rpy2 时在 Mac 中不能正确显示绘图?
【发布时间】:2019-09-09 22:06:10
【问题描述】:

我正在尝试通过 Mac 中的 rpy2 在 Python 中绘制 R 绘图,但绘图未完全显示或关闭窗口后 python 崩溃。

如果我运行下面的代码没有 r.quartz(),将根本没有图表,但在我的文件夹中生成了一个名为“Rplot”的pdf文件打不开。

如果我在 with r.quartz() 下运行代码,将显示绘图,但在我关闭图形窗口后 python 会意外退出。我在 Windows 中尝试了这些代码,它们运行良好。

import rpy2.robjects as robjects

r = robjects.r

x = robjects.IntVector(range(10))

y = r.rnorm(10)

r.quartz()

r.layout(r.matrix(robjects.IntVector([1,2,3,2]), nrow=2, ncol=2))

r.plot(r.runif(10), y, xlab="runif", ylab="foo/bar", col="red")

【问题讨论】:

    标签: python python-3.x rpy2


    【解决方案1】:

    根据您的本地 R 设置,默认情况下 R 可能会创建 PDF 图形设备(有关 rpy2 上下文中图形设备的更多信息,请参阅文档: https://rpy2.github.io/doc/v3.1.x/html/graphics.html#graphical-devices)。

    关于 Python 终止,您是交互式地使用 Python 还是正在运行脚本(例如,python myscript.py)?如果是后者,那么 Python 在脚本执行结束后退出是正常的。

    【讨论】:

    • 感谢您的回答。我在 Spyder 中运行代码。如果我在终端中运行脚本,那么什么都不会发生。当我在 rpy2 中调用石英设备时,似乎出了点问题。如果我在 R 中使用石英,那么一切都很好......顺便说一句,创建的 PDF 已损坏,无法打开
    • 我没有用于 rpy2 开发/测试的 OSX 系统。我不知道发生了什么,除了它在带有 X11 的 Linux 上运行良好(我相信石英是 OS X 特有的)。可能这里的其他人会有更多的见解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2019-12-06
    相关资源
    最近更新 更多