【发布时间】:2013-06-05 10:30:50
【问题描述】:
虽然 SO 通常不用于帮助解决错误,但它显示了特别简单且特别烦人的行为。如果您是ggplot2 用户,您可以在 10 秒或更短的时间内重现它。
正如这个 GitHub 问题:ggplot_gtable creates blank display 所说,以下代码
library(ggplot2)
stat = qplot(Sepal.Length, Petal.Length, data = iris, color = Species)
ggplot_gtable(ggplot_build(stat))
将产生一个空白设备。请注意,由于ggplot2 是一个图形库,因此某些命令可以调出图形设备来显示相关的绘图。具体来说,只需运行ggplot_build(stat) 就会显示一个情节。但这并不能解释这种行为。
我不确定如何调试这个(打印语句似乎并不合适或有用),ggplot2 开发社区似乎正在休假或其他什么,所以如果有经验的R 用户可以提供关于如何有效调试的建议,我将不胜感激。这是一个微不足道但非常烦人的错误。每次我运行看起来像 sn-p 的代码时,它都会显示一个空白设备,显示器会将焦点切换到该设备上,因此我必须单击它才能继续。
我可能做错了什么,并且我是唯一可以重现此错误的人。出于某种我无法想象的原因,这也可能是正常行为。如果您认为其中任何一个是真的,请告诉我。
我在 Debian Squeeze 上使用 ggplot2 0.9.3.1(最新版本)。
【问题讨论】:
-
你想用
ggplot_gtable(ggplot_build())做什么? (顺便说一句,有ggplotGrob()。我的猜测是在gtable创建过程中,需要一个开放的设备来解析某些类型的网格单元。 -
在 OSX:10.7.5 /R: 3.0.1/ggplot2_0.9.3.1 从 GUI 1.60 (6475) 调用时不会发生,但在 R 会话开始时调用时会发生在 Terminal.app 中
-
@baptiste:
ggplotGrob的定义是ggplot_gtable(ggplot_build())。我习惯于把手放在 grob 桌子上。 -
@DWin 谢谢。这是有用的信息。所以它是特定于操作系统的。
-
在 5 分钟窗口中添加了信息。事实证明,特定于接口。
标签: r debugging graphics ggplot2