gpt4 book ai didi

r - 为什么此 R ggplot2 代码会显示空白显示设备?

转载 作者:行者123 更新时间:2023-12-01 10:52:54 25 4
gpt4 key购买 nike

虽然 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 用户可以提供有关如何有效调试的建议,我将不胜感激。这是一个微不足道但非常烦人的错误。每次我运行看起来像代码片段的代码时,它都会弹出一个空白设备,显示将焦点切换到该设备,因此我必须先单击它才能继续。

有可能我做错了一些可怕的事情并且是唯一可以重现此错误的人。出于某种我无法想象的原因,这也有可能是正常行为。如果您认为这些事情中的任何一个是真的,请告诉我。

我在 Debian squeeze 上使用 ggplot2 0.9.3.1(最新版本)。

最佳答案

一些网格 grob 的单位只能在绘制时解析,也就是说一旦设备窗口打开。例如,文本 grob 就是这种情况,因为它们的大小可能取决于(在大多数情况下)父视口(viewport)的 cexfontsize 参数(可以嵌套等)

library(grid)
widthDetails(textGrob("hi"))

当前版本的 ggplot2 似乎在代码中使用 widthDetails 来构建图例 grob(guides_build 函数)。可以想象,这可以用 grobWidth 代替,除非 grob 大小太复杂。

关于r - 为什么此 R ggplot2 代码会显示空白显示设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com