【发布时间】:2010-12-28 10:20:38
【问题描述】:
这是给 R 用户的问题。我有兴趣绘制一个点堆叠的直方图,而不是条形图。例如如果数据是(1,1,2,1,2,3,3,3,4,4),那么我希望看到三个点在 1 处堆叠,2 个点在 2 处堆叠等等.在 R 中执行此操作的最佳方法是什么?
【问题讨论】:
这是给 R 用户的问题。我有兴趣绘制一个点堆叠的直方图,而不是条形图。例如如果数据是(1,1,2,1,2,3,3,3,4,4),那么我希望看到三个点在 1 处堆叠,2 个点在 2 处堆叠等等.在 R 中执行此操作的最佳方法是什么?
【问题讨论】:
Greg Snow 的 TeachingDemos 包包含一个 dots(x, ...) 函数,它似乎符合您的需要:
dots( round( rnorm(50, 10,3) ) )
【讨论】:
另一种简单的方法是:
x <- c(1,1,2,1,2,3,3,3,4,4)
myhist <- hist(x)
myhistX <- myhist$mids
myhistY <- myhist$density
现在你可以用任何你喜欢的方式来绘制它:
plot(myhistY~myhistX)
这样您可以在构建“直方图”对象时更改堆叠选项。
【讨论】:
我知道的最简单的答案是:
x <- c(1,1,2,1,2,3,3,3,4,4)
stripchart(x,method="stack",at=0)
这比 Jonathan Chang 的建议要好,因为 stripchart 可以正确堆叠积分。
【讨论】:
您可以很快自己完成:
x <- c(1,1,2,1,2,3,3,3,4,4)
plot(sort(x), sequence(table(x)))
【讨论】: