这是一个针对R语言使用者的问题。我想绘制一张堆积着点的直方图,而不是条形图。例如,如果数据为(1,1,2,1,2,3,3,3,4,4),那么我希望在1处看到三个点,2处看到两个点,以此类推。在R中最好的方法是什么?
x <- c(1,1,2,1,2,3,3,3,4,4)
plot(sort(x), sequence(table(x)))
x <- c(1,1,2,1,2,3,3,3,4,4)
stripchart(x,method="stack",at=0)
< p>它比Jonathan Chang的建议更好,因为stripchart
对点进行适当的堆叠。< /p>
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)
通过这种方式,您可以在构建 "直方图" 对象时更改堆叠选项。