qplot(c(0,0,0,0,1e12)) stat_bin: binwidth defaulted to range/30. Use 'binwidth -6ren">
gpt4 book ai didi

r - 尝试在 ggplot2 中绘制简单直方图给出 "Error: position_stack requires constant width"

转载 作者:行者123 更新时间:2023-12-02 02:22:25 26 4
gpt4 key购买 nike

为什么会这样?我该如何解决这个问题?

> qplot(c(0,0,0,0,1e12))
stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.
Error: position_stack requires constant width
> qplot(c(0,0,0,0,1e12), binwidth=1e12/30)
Error: position_stack requires constant width
> qplot(c(0,0,0,0,1e12), binwidth=1e10) # works
> qplot(c(0,0,0,0,1e12), binwidth=1e11) # works

我找到了 http://r.789695.n4.nabble.com/ggplot2-histograms-a-subtle-error-found-td2305814.html但在他们的情况下,问题是 binwidth 比值小得多。在这里,它们处于相似的数量级。

最佳答案

我要大胆猜测这是一个数值精度问题。使用 tracebackdebug 进行一些调查后发现问题出现在函数 collide 的检查中:

if (check.width && length(widths) > 1 && sd(widths) > 1e-06) {
stop(name, " requires constant width", call. = FALSE)
}

宽度的不同足以让 sd 太大。这个问题随着值变小而消失的事实进一步似乎是数值精度问题的证据。

但用于生成宽度的值并非源自 collide,所以真正的问题可能是在更上游引起的,尽管我对 ggplot 的内部结构还不够熟悉 进一步推测。

关于r - 尝试在 ggplot2 中绘制简单直方图给出 "Error: position_stack requires constant width",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492250/

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