r - R中带曲线的直方图

标签 r histogram curve

我需要数据的直方图,但找不到带有曲线的直方图。任何人都可以建议一个显示频率(不是密度)的直方图和下面数据的曲线吗?花哨的是首选,但如果不是,请不要担心 :)

x <- rnorm(1000)
hist(x)

最佳答案

这是缓慢的、循序渐进的版本。

这是您的数据。

population_mean <- 0
population_sd <- 1
n <- 1000
x <- rnorm(n, population_mean, population_sd)

这些是一些用于绘制曲线的 x 坐标。请注意使用 qnorm 从正态分布中获取下分位数和上分位数。

population_x <- seq(
  qnorm(0.001, population_mean, population_sd), 
  qnorm(0.999, population_mean, population_sd), 
  length.out = 1000
)

为了将密度转换为计数,我们需要知道 binwidth。如果我们自己指定,这是最简单的。

binwidth <- 0.5
breaks <- seq(floor(min(x)), ceiling(max(x)), binwidth)

这是我们的直方图。

hist(x, breaks)

计数曲线是正态密度乘以数据点数除以 binwidth。

lines(
  population_x, 
  n * dnorm(population_x, population_mean, population_sd) * binwidth, 
  col = "red"
)

让我们再看看样本分布而不是总体分布。

sample_mean <- mean(x)
sample_sd <- sd(x)
sample_x <- seq(
  qnorm(0.001, sample_mean, sample_sd), 
  qnorm(0.999, sample_mean, sample_sd), 
  length.out = 1000
)
lines(
  population_x, 
  n * dnorm(sample_x, sample_mean, sample_sd) * binwidth, 
  col = "blue"
)

histogram with frequency curves

关于r - R中带曲线的直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482502/

相关文章:

r - 理解dplyr select()中的非标准评估NSE和标准评估SE

algorithm - 在 MATLAB 中平滑测量数据?

matlab - 在MATLAB中,如何找到所有这些曲线下间隙最高点的坐标位置?

r - R中安装bsts包报错

r - 将 mutate_at 与 contains 结合使用以在多列上应用函数

r - 计算每组条件的行数

Python:matplotlib - 概率质量函数作为直方图

c++ - 从直方图中获取颜色 vector maxValue

c++ - C++11 中的通用 STL 兼容直方图

WebGL 如何绘制曲线