R:将一个ECDF以不同颜色绘制在另一个上面

时间:2011-06-14 13:17:37

标签: r plot ecdf

我有几个累积的经验密度函数,我想在彼此之上绘制,以说明两条曲线的差异。正如in a previous question指出的那样,绘制ECDF的功能只是plot(Ecdf())当我阅读精细的手册页时,我确定我可以使用以下内容将多个ECDF绘制在彼此之上:

require( Hmisc )
set.seed(3)
g <- c(rep(1, 20), rep(2, 20))  
Ecdf(c( rnorm(20), rnorm(20)), group=g)

然而,我的曲线有时会重叠一点,很难分辨出哪一个,就像上面产生这个图的例子一样:

enter image description here

我真的想让这两个CDF的颜色不同。但是,我无法弄清楚如何做到这一点。有什么提示吗?

3 个答案:

答案 0 :(得分:12)

如果记忆有用,我过去就已经这样做了。我记得,你需要欺骗它,因为Ecdf()非常典型。我认为在help(ecdf)中它暗示它只是一个阶梯函数的图,所以你可以估计两个或更多的ecdf,绘制一个然后通过lines()进行注释。

修改 结果就像

一样简单
  R> Ecdf(c(rnorm(20), rnorm(20)), group=g, col=c('blue', 'orange'))

因为帮助页面清楚地说明了col=参数。但是我也发现了一些我明确使用plot.stepfun()的小脚本。

答案 1 :(得分:7)

您可以一次添加一条曲线(每条曲线都有自己的风格),例如

Ecdf(rnorm(20), lwd = 2)
Ecdf(rnorm(20),add = TRUE, col = 'red', lty = 1)

答案 2 :(得分:0)

不使用Ecdf(看起来好像Hmisc不可用):

set.seed(3)
mat <- cbind(rnorm(20), rnorm(20))
matplot(apply(mat, 2, sort), seq(20)/20, type='s')