Fah*_*tha 3 debugging graphics r ggplot2
虽然SO通常不用于帮助修复bug,但是这个显示出特别简单且特别烦人的行为.如果您是ggplot2用户,则可以在10秒或更短时间内重现.
正如这个GitHub问题:ggplot_gtable创建空白显示,如下代码
library(ggplot2)
stat = qplot(Sepal.Length, Petal.Length, data = iris, color = Species)
ggplot_gtable(ggplot_build(stat))
Run Code Online (Sandbox Code Playgroud)
将产生一个空白设备.请注意,由于ggplot2是图形库,因此某些命令可以显示图形设备以显示相关图.具体来说,只是跑步ggplot_build(stat)会带来一个情节.但这并不能解释这种行为.
我不确定如何调试这个(打印语句似乎不合适或有用),ggplot2开发社区似乎正在度假或其他什么,所以如果有经验的R用户可以提供有关如何有效调试这一点的建议,我会很感激的.这是一个微不足道但又令人讨厌的bug.每次我运行看起来像代码片段的代码时,它会显示一个空白设备,显示器切换到该设备,因此我必须先将其单击,然后才能继续.
我可能正在做一些可怕的错误,并且是唯一可以重现这个错误的人.由于某些原因我无法想象,这也是正常行为.如果您认为这些事情都属实,请告诉我.
我在Debian squeeze上使用ggplot2 0.9.3.1(最新版本).
一些网格凹槽具有只能在绘制时解析的单元,也就是说一旦设备窗口打开.例如,这就是文本grob的情况,因为它们的大小可以取决于(在最一般情况下)父视图(可以嵌套等)的参数cex和fontsize参数.
library(grid)
widthDetails(textGrob("hi"))
Run Code Online (Sandbox Code Playgroud)
当前版本ggplot2似乎widthDetails在代码中用于构建图例grobs(guides_build函数).可以想象grobWidth,除非凹槽尺寸太复杂,否则可以用此替换.