2009-12-20 166 views
8

這是一個R用戶的問題。我有興趣繪製直方圖積分,而不是酒吧。例如,如果數據是(1,1,2,1,2,3,3,3,4,4),那麼我想看到三個點堆積在1,2點,堆積在2點,依此類推。在R中做這件事的最好方法是什麼?用點代替直方圖繪製直方圖

回答

5

格雷格·斯諾的TeachingDemos包包含一個dots(x, ...)功能,似乎適合您的需要:

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

enter image description here

+0

似乎是所有解決方案中最簡單的!感謝Kyubic – Ramnath

+0

@Ramnath:當你看源代碼時,它基本上和Jonathan Chang的回答一樣 – vonjd

5

你可以很快做到這一點你自己:

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

謝謝Jonathan。這爲我做了這份工作! – Ramnath

5

最簡單的答案我知道是這樣的:

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

由於stripchart沒有正確堆積積分,所以比張建東的建議要好。

+0

感謝羅布。 Stripchart看起來非常直觀,但我更喜歡將點堆分開。 – Ramnath

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) 

這種方式建設「直方圖」時,你可以更改堆疊選項目的。