2013-02-20 68 views
1

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

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) 

谢谢您的帮助!

+0

看看'ggplot2':那里的直方图可以很容易地与一个(适当缩放的)密度曲线相结合,在[documentation](http://docs.ggplot2.org)中搜索“geom_density” /0.9.3/geom_histogram.html) – krlmlr 2013-02-20 21:11:28

+0

如果你已经去除了像minx,maxx,paramlab,groupnum等各种不必要的变量,并且通过例如使用“x”代替“数据列表[[C12]]”。 – 2013-02-22 10:40:32

回答

3

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

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

这就是我已经做的。看看我的代码。 – Lio 2013-02-21 12:42:28

1

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

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

这就是我已经做的。看看我的代码。这不能解决我的问题。 – Lio 2013-02-21 12:45:09

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

+0

谢谢彼得。但是,我意识到我应该更具体。事实上,我试图得到的是一个两个数字相加的图(par(mfrow = c(2,1)),两个不同长度样本的直方图和密度曲线组合在一起。 :我希望两者都具有相同的x轴,直方图(freq = false)具有相同的bin宽度,但我不能这样做,密度曲线看起来不切实际(它们的上升幅度远高于条形图)。修复它?谢谢 – Lio 2013-02-22 14:35:49

+0

是的,那真的没有遇到你的问题。我建议你重新开始一个新的问题,用一个可重复的例子使用模拟数据。 – 2013-02-22 20:34:37