在R中绘制频率密度直方图

时间:2014-04-20 16:18:36

标签: r graphics histogram

使用R,任何人都可以告诉我如何绘制一个简单的直方图,在以下数据的区间之间没有间隙: -

Class Width Freq. Dist

0 <= x < 5          0.2 
5 <= x < 15         0.1
15 <= x < 20        1.2
20 <= x < 30        0.4
30 <= x < 40        0.4

所以我希望X轴从0-5,5-15,15-20,20-30和30-40变为适当的条形。

提前致谢!

2 个答案:

答案 0 :(得分:2)

这个怎么样?

breaks <- c(0,5,15,20,30,40)
counts <- c(0.2, 0.1, 1.2, 0.4, 0.4)
barplot(counts,
   names=sprintf("[%g,%g)",
      breaks[-length(breaks)], breaks[-1]
   ),
   space=0
)

这将为您提供相等宽度的条形图。另一方面,如果您想获得各种宽度的条形,请输入:

barplot(counts, diff(breaks),
    names=sprintf("[%g,%g)", breaks[-length(breaks)], breaks[-1]),
    space=0
)

此外,这将给你一个普通的&#34; X轴:

barplot(counts, diff(breaks), space=0)
axis(1)

如果您想在breaks中的点完全获得轴断点,请输入:

axis(1, at=breaks)

答案 1 :(得分:2)

我会查看R的“HistogramTools”包。

breaks <- c(0, 5, 15, 20, 30, 40)
counts <- c(0.2, 0.1, 1.2, 0.4, 0.4)
library(HistogramTools)
plot(PreBinnedHistogram(breaks, counts), main = "")

enter image description here