【问题标题】:Draw frequency density histogram in R在R中绘制频率密度直方图
【发布时间】:2014-04-20 16:18:35
【问题描述】:

使用 R,谁能告诉我如何绘制一个简单的直方图,在以下数据的 bin 之间没有间隙:-

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 开始,并适当地绘制条形。

提前致谢!

【问题讨论】:

    标签: r graphics histogram


    【解决方案1】:

    这个怎么样?

    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
    )
    

    此外,这会给你一个“普通”的 X 轴:

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

    如果您想在breaks 中的点处获得准确的轴中断,请输入:

    axis(1, at=breaks)
    

    【讨论】:

    • 谢谢 - 我怎样才能获得 x 轴标签为 0,5,15,20,30,40 ?否则是一个很好的解决方案!
    • 试试axis(1, at=breaks)(我已经对此进行了后期编辑)
    • 很好的答案! - 非常感谢
    【解决方案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 = "")
    

    【讨论】:

      猜你喜欢
      • 2017-11-26
      • 1970-01-01
      • 2017-06-08
      • 2020-08-08
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      相关资源
      最近更新 更多