将直方图与R中的密度图组合

时间:2013-02-20 17:22:16

标签: r histogram

当我在一个图中合并两者时,似乎我在直方图和密度线之间存在缩放问题。单独的密度曲线绘制与两者的组合之间存在明显的视觉差异。在两个图之间具有相同形状和比例的解决方案是什么(单独使用密度和将其与组合结合时的密度)?我使用这段代码:

hist(dataList[[cl12]],xlim=range(minx,maxx),breaks=seq(minx,maxx,pasx),col="grey",main=paste(paramlab,"Group",groupnum,Cl,sep=" "),xlab="",freq=FALSE) 
d<-density(dataList[[cl12]])
lines(d,col="red")

  dataList[[cl12]] <- c(4.399449e-02,  2.161474e-02, -1.515223e-05,  1.298059e+01,
      3.163949e-01, -1.785220e+00,  1.041053e+01,  6.327219e-01, -5.778590e-03)

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

默认情况下,hist绘制bin频率。如果要显示bin概率,使其与密度图的比例匹配,则可以使用hist的freq参数。这是一个例子:

x = rnorm(1000)
plot(density(x))
hist(x, freq=F, add=T)

答案 1 :(得分:1)

这是做同样事情的另一种方式。

test <- rnorm(1000)
plot(density(test))
par(new=T)
hist(test, freq=F, xaxt="n", xlab="", ylab="", main="")

答案 2 :(得分:0)

除了极少数量的数据点之外,我认为你没有问题。当我将您的代码更改为可重现的版本时,它看起来很好。例如

x <- c(4.399449e-02,  2.161474e-02, -1.515223e-05,  1.298059e+01,
      3.163949e-01, -1.785220e+00,  1.041053e+01,  6.327219e-01, -5.778590e-03)

hist(x,col="grey",freq=FALSE, breaks=10) 
d<-density(x)
lines(d,col="red")

这给出了一个丑陋的情节,但显然这是因为数据点数量很少:

enter image description here

如果您使用更多数据点执行相同的方法,它似乎很好,例如:

x <- rgamma(100,1,1)

(使用相同的图表代码)

enter image description here