【问题标题】:Is there any way to make my histogram graph stick together? [closed]有没有办法让我的直方图粘在一起? [关闭]
【发布时间】:2020-07-07 04:27:12
【问题描述】:

我使用 R 代码 hist(redwine$quality) 绘制此直方图 我想让它看起来更像一个正态分布图:(

【问题讨论】:

  • 如果您包含一个简单的reproducible example 以及可用于测试和验证可能的解决方案的示例输入,则更容易为您提供帮助。
  • 您的数据(或大部分数据)不是连续的。因此,直方图不是合适的图表。
  • 因为您的数据是连续数字而不是整数。如果您使用 as.integer 将其向下舍入,则会引入偏差。 重复:Why is the first bar so big in my R histogram?
  • 这个问题非常清楚,没有理由被关闭

标签: r histogram


【解决方案1】:

问题在于您的数据不连续。 “Sturges”是计算“最佳”断点数 (ceiling(1 + log2(n))) 的默认方法,因此对于离散数据,断点通常会失败。

vals <- 3:8
times <- c(20,100,690,650,200,30)
quality <- unlist(lapply(seq_along(vals), function(i) rep(vals[i], times=times[i])))

h1 <- hist(quality)

h1$breaks
#[1] 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

解决方案:为breaks 参数指定一个向量。

hist(quality, breaks=2:8)

或者使用条形图。

barplot(table(quality))

【讨论】:

    【解决方案2】:

    你可以减少breaks的数量。

    hist(iris$Petal.Length, breaks=4)
    

    您也可以添加一条曲线,但保留原来的断点。

    hist(iris$Petal.Length, freq=FALSE)
    curve(dnorm(x, mean=mean(iris$Petal.Length), sd=sd(iris$Petal.Length)), add=TRUE, col="red")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多