【问题标题】:Plot Histogram with Points Instead of Bars用点而不是条形图绘制直方图
【发布时间】:2010-12-28 10:20:38
【问题描述】:

这是给 R 用户的问题。我有兴趣绘制一个点堆叠的直方图,而不是条形图。例如如果数据是(1,1,2,1,2,3,3,3,4,4),那么我希望看到三个点在 1 处堆叠,2 个点在 2 处堆叠等等.在 R 中执行此操作的最佳方法是什么?

【问题讨论】:

    标签: r plot histogram


    【解决方案1】:

    Greg Snow 的 TeachingDemos 包包含一个 dots(x, ...) 函数,它似乎符合您的需要:

    dots( round( rnorm(50, 10,3) ) )
    

    【讨论】:

    • 似乎是所有解决方案中最简单的!谢谢Kyubic
    • @Ramnath:当您查看源代码时,它基本上与 Jonathan Chang 的回答相同
    【解决方案2】:

    另一种简单的方法是:

    x <- c(1,1,2,1,2,3,3,3,4,4)
    myhist <- hist(x)
    myhistX <- myhist$mids
    myhistY <- myhist$density
    

    现在你可以用任何你喜欢的方式来绘制它:

    plot(myhistY~myhistX)
    

    这样您可以在构建“直方图”对象时更改堆叠选项。

    【讨论】:

      【解决方案3】:

      我知道的最简单的答案是:

      x <- c(1,1,2,1,2,3,3,3,4,4)
      stripchart(x,method="stack",at=0)
      

      这比 Jonathan Chang 的建议要好,因为 stripchart 可以正确堆叠积分。

      【讨论】:

      • 谢谢罗伯。 Stripchart 看起来非常直观,尽管我更喜欢将点堆栈分开。
      【解决方案4】:

      您可以很快自己完成:

      x <- c(1,1,2,1,2,3,3,3,4,4)
      plot(sort(x), sequence(table(x)))
      

      【讨论】:

      • 谢谢乔纳森。这对我有用!
      猜你喜欢
      • 2012-09-13
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 2018-05-17
      • 2023-02-04
      • 2015-03-05
      相关资源
      最近更新 更多