为什么在创建 bean plot 时出现 density.default 错误

why do I get Error in density.default while creating bean plot

我正在尝试创建一个 beanplot:

library(beanplot)

beanplot(df, col="#cccccc", log="y", names="plot-1", yaxt="n", overallline="median", ll=0.00001)

但是,我收到以下错误:

Error in density.default(mlog(x), bw = bw, kernel = kernel, from = from,  : 
  non-finite 'from'

有人可以帮忙吗?

如果没有看到您的数据就无法确定,但我怀疑您的问题来自于输入中有一个或多个零,然后试图在对数刻度上绘制它的密度。

我可以像这样重现你的问题:

library(beanplot)

df <- data.frame(x = 0:10)

beanplot(df, col="#cccccc", log = 'y', names="plot-1", 
         overallline="median", ll=0.00001)
#> Error in density.default(mlog(x), bw = bw, kernel = kernel, from = from,  : 
#>   non-finite 'from'

如果我们删除零,我们会得到一个图:

beanplot(df[df$x != 0,], col="#cccccc", log = 'y', names="plot-1", 
         overallline="median", ll=0.00001)

或者我们可以删除对数刻度并保留零:

beanplot(df, col="#cccccc", names="plot-1", overallline="median", ll=0.00001)

但显然我们不能同时保持零 具有对数刻度,因为零的对数在 R 中被解释为负无穷大。