使用点绘制直方图而不是条形图

8

这是一个针对R语言使用者的问题。我想绘制一张堆积着点的直方图,而不是条形图。例如,如果数据为(1,1,2,1,2,3,3,3,4,4),那么我希望在1处看到三个点,2处看到两个点,以此类推。在R中最好的方法是什么?

4个回答

6
您可以很快自己完成这个过程:
x <- c(1,1,2,1,2,3,3,3,4,4)
plot(sort(x), sequence(table(x)))

谢谢Jonathan。这对我来说很有效! - Ramnath

6
我知道的最简单的答案是:
x <- c(1,1,2,1,2,3,3,3,4,4)
stripchart(x,method="stack",at=0)
< p>它比Jonathan Chang的建议更好,因为stripchart对点进行适当的堆叠。< /p>

谢谢Rob。Stripchart看起来非常直观,尽管我更喜欢点的堆叠是分开的。 - Ramnath

5

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

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

enter image description here


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

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)

通过这种方式,您可以在构建 "直方图" 对象时更改堆叠选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接