首页 > 解决方案 > 有没有更简单的方法来绘制相对频率直方图

问题描述

假设我有 1 的 30 次试验、2 的 40 次试验和 3 的 50 次试验。如果我使用以下代码:

library(lattice)
a <- c(30,40,50)
histogram(a)

然后结果的数量将显示为范围而不是频率。有没有比列出 3 50 次更方便的方法?


编辑:在一项实验中,研究人员正在计算手机跌落后会损坏多少次。第一次试用后有 30 部手机坏了,第二次试用后有 40 部手机坏了,第三次试用后有 50 部手机坏了。所以我想介绍一下这种趋势。但是,在我使用前面的代码之后,图表如下所示: graph Here R 将我的数据视为一个案例。因此,我正在寻找一些方法来使这些数据显示为案例频率。

标签: rstatistics

解决方案


正如其他人在评论中所说的那样,我认为这barplot是实现这一目标的最佳方法,但看起来您似乎也想知道一种“取消表”计数以创建直方图的方法。您可以使用以下方法执行此操作rep

a <- rep(1:3, c(30, 40, 50))
a
#>   [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
#>  [35] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [69] 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
#> [103] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

如果你真的想要,你可以用直方图绘制,像这样:

hist(a, breaks = 0:3 + .5, main = "frequency", xlab = "n", axes = FALSE)
axis(side = 2, at = 0:5 * 10)
axis(side = 1, at = 1:3)

在此处输入图像描述

但是,直方图并不是您真正想要的。直方图是一种通过将连续数据放入“箱”中来计算连续数据的方法,因此在直方图中,x 轴是连续的。以这种方式绘制它意味着有可能打破手机 1.6 次或 2.38 次。

如果要显示离散事件的计数,则应使用条形图。这具有适用于计数数据并且更容易创建的优点:

 barplot(c(30,40,50), names.arg = 1:3, col = "lavender", main = "Broken phones")

在此处输入图像描述


推荐阅读