如何为R中的直方图叠加的密度图添加第二个y轴?

时间:2013-05-02 06:11:30

标签: r histogram density-plot

我有一个如下所示的直方图,我在其上添加了2个密度图。它对应于组成数据的2个类。

histogram 我想在右边添加第二个y轴,但是与第一个y轴具有相同的高度,因此密度图的高度看起来不那么小。 2个密度图的相对高度必须直接比较,这样它们的组合面积为1

2 个答案:

答案 0 :(得分:3)

如果您使用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..))

enter image description here

答案 1 :(得分: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`