我希望在R中创建一个等频率(又名等箱计数)直方图,理想情况下在ggplot中生成一个图。
在ggplot中,我可以看到一个等箱宽度图是非常直接的,如果你想让它们等宽,选择你有多少个箱也是如此。然而,要求R基于每个中接近相等数量的样本来创建bin宽度似乎更复杂……
非常感谢提前!
到目前为止,我已经使用了classInt包和ClassIntervals函数来定义波段(或bin宽度-最大值和最小值),这将在每个bin中给予相同数量的数据点(见下文),但不知道如何将其集成到代码中来定义直方图的bin宽度。
bands= classIntervals(dataset$Depth, 10, style = 'quantile')
bands
style: quantile
[0.1545109,0.1616876) [0.1616876,0.1682627) [0.1682627,0.1713514)
2233 2232 2232
[0.1713514,0.1736983) [0.1736983,0.1758581) [0.1758581,0.1792968)
2233 2232 2232
[0.1792968,0.1869507) [0.1869507,0.1913873) [0.1913873,0.2064948)
2233 2232 2232
[0.2064948,0.5918484]
2233
有没有一种方法可以将这些带宽整合到直方图的基本ggplot代码中,也许可以通过定义“binwidth”?
ggplot(dataset, aes(x=Depth))+geom_histogram()
或者,是否有其他方法可以在R中创建等频率直方图?
1条答案
按热度按时间5lhxktic1#
您可以使用
quantile
创建基于分位数的断点:根据数据点数量和单元格数量的比率以及是否存在关系,单元格可能不像上面的
faithful
数据示例中那样完全相等,它们只是近似相等:然后,这些断点可以用于
hist()
中的参数breaks
: