8

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

4

4 回答 4

6

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

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

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

于 2009-12-20T09:04:59.153 回答
6

你可以自己很快地做到这一点:

x <- c(1,1,2,1,2,3,3,3,4,4)
plot(sort(x), sequence(table(x)))
于 2009-12-20T05:40:36.760 回答
5

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

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

在此处输入图像描述

于 2009-12-20T04:44:37.830 回答
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)

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

于 2012-12-25T13:14:08.500 回答