我有下面顯示的直方圖,並且我已經在其上添加了2個密度圖。它對應於組成數據的2個類。如何添加疊加在R中直方圖上的密度圖的第2個y軸?
我想在右側添加第2個y軸,但它的高度與第1個y軸相同,因此密度圖的高度看起來不會太小。 2個密度圖的相對高度必須以直接比較,使得它們的組合面積爲1
我有下面顯示的直方圖,並且我已經在其上添加了2個密度圖。它對應於組成數據的2個類。如何添加疊加在R中直方圖上的密度圖的第2個y軸?
我想在右側添加第2個y軸,但它的高度與第1個y軸相同,因此密度圖的高度看起來不會太小。 2個密度圖的相對高度必須以直接比較,使得它們的組合面積爲1
z <- rnorm(100,.3,.2)
hist(z, xlab="", ylab="", main="", yaxt="n")
par(new=TRUE)
plot(density(z), xlab="", ylab="", main="", xaxt="n", yaxt="n")
axis(2, ...) # plug in the relevant values for `at` and `labels`
axis(4, ...) # plug in the relevant values for `at` and `labels`
如果使用ggplot2
可以使用geom_density(aes(y=..scaled..))
和geom_histogram(aes(y = ..ndensity))
比例同樣
例如
x <- rnorm(400, 10, 5)
y <- rnorm(400, -10, 5)
dd <- rbind(data.frame(value = x, id = 'x'), data.frame(value = y, id = 'y'))
ggplot(dd, aes(x=value)) +
geom_histogram(aes(y=..ndensity..)) +
geom_density(aes(colour = id, y = ..scaled..))
謝謝你的回答!我在原來的問題上犯了一個錯誤。 2個密度圖的總面積應該等於1,以便它們可以直接比較。由於直方圖顯示了整個數據,但是2個密度圖顯示了1個類的數據,所以它們的高度也應該更小。 在你的情節,我只看到1軸。我想在右邊的第二個Y軸顯示密度。 – Cheng 2013-05-02 19:55:40
Downvoting for no code and沒有數據。 – 2013-05-02 06:43:33
您可以使用'latticeExtra'包中的'doubleYScale'。有關更多信息,請參閱此鏈接(http://latticeextra.r-forge.r-project.org/#doubleYScale&theme=default)。 – fdetsch 2013-05-02 07:20:48