gpt4 book ai didi

r - hist() 错误 : 'breaks' do not span range of 'data' and barplot(, log = "y") 错误:'高度 + 偏移量 <= 0

转载 作者:行者123 更新时间:2023-12-01 16:26:08 24 4
gpt4 key购买 nike

在 x 轴上,我有大量数据 (0:700)当我使用这个时:

dh <- hist(data)
barplot(dh$counts, log="y", col="white", names.arg=dh$breaks[-1])

我得到这个图形:

enter image description here

但我想要获得更小的中断值。我尝试修改中断值,但收到错误

Error in hist.default(data, breaks = seq(5, 700, by = 10)) : some 'data' not counted; maybe 'breaks' do not span range of 'data'

<小时/>

跟进:

设置后breaks = seq(0, 700, by = 10)正如答案所示,hist()工作正常但是 barplot()给我错误:

error log axis: at least one value 'height + offset <= 0

发生了什么?

最佳答案

原始问题为 hist :

我认为你应该设置休息时间breaks = seq(0, 700, by = 10) ,正如您在评论中所说,range(data)报告c(0, 690) .

hist.default()如果中断未覆盖数据范围,将报告错误。您当前的设置:breaks = seq(5, 700, by = 10)最小值为 5,最大值为 695,左边界稍显不足。

我可以轻松地重现您看到的错误:

set.seed(0); x<-rexp(1000,1)
range(x)
# [1] 0.001700975 6.584532959
hist(x, breaks = seq(0.002, 7.002, by = 0.5))

Error in hist.default(x, breaks = seq(0.002, 7.002, by = 0.5)) : some 'x' not counted; maybe 'breaks' do not span range of 'x'

barplot 的后续问题:

error log axis: at least one value 'height + offset <= 0

我能猜到发生了什么。检查min(dh$counts) ,我认为它是 0。你知道,log(0) = -INF ,并且您无法绘制它。

Yes I have the 0 value. but why it works before I use seq(0, 700, by = 10)?

为什么不检查 foo <- hist(data, plot = FALSE) ,看看它选择了什么 bin 单元格和中断?有可能 hist()明智地选择了 bin 大小,因此不会出现 0 计数。

当您尝试优化自动选择的 bin 大小时,您应该以实现相同的目标为目标,而不是导致 0。(好吧,如果您不在 log = "y" 中设置 barplot() 那么这真的没关系。 )

我还可以给你一个技巧/作弊。你可能会这样做barplot(dh$counts + 1, log = "y", ...) 。加1后,最小值log值为0,完全没有问题!当然,计数值会发生变化,但很可能在您的演示图中并不明显。

关于r - hist() 错误 : 'breaks' do not span range of 'data' and barplot(, log = "y") 错误:'高度 + 偏移量 <= 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37478795/

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