2012-01-25 121 views
3

當我在R中運行密度直方圖時,縱軸顯示密度爲分數。試試這個,例如: hist(rnorm(100), freq = FALSE)如何以R的百分比表示密度?

查看垂直軸如何顯示「0.0」,「0.1」,「0.2」等。我怎樣才能讓它顯示「0%」,「1%」,「2 %「?

回答

3

這樣的事情?

x <- rnorm(100) 
par(mfrow = c(1, 2)) 
hist(x, freq = FALSE, axes = FALSE) 
axis(2, at = seq(0, 0.4, 0.1), labels = paste(0:4, "%", sep = "")) 
hist(x, freq = FALSE) 

enter image description here

+0

就是這樣,感謝您的幫助! –

1

不要在hist繪製垂直軸。通過axis自己添加。

h <- hist(rnorm(100)) 
plot(h, freq=FALSE, yaxt="n") 
axis(2, pretty(h$density), sprintf("%0.0f%%", pretty(h$density)*100)) 

但是,這是非常具有誤導性的,因爲密度與百分比或某種比例不同。如果你做的是這樣

hist(rnorm(100, s=0.1)) 

你得到相同的分佈,但現在所有的密度是10倍的幅度更大,是因爲發行規模的10倍小。

將y軸上的百分比繪製爲累積頻率多邊形或直方圖會更有意義。

+0

你說得對,密度和百分比不是一回事。但在我的真實情況下,我會強制中斷寬度1,因此將y軸重新標記爲「百分比」不會有問題。感謝您的貢獻! –

+0

@WaldirLeoncio:根據計算密度的方式,仍然存在問題。 – russellpierce