我有几个累积的经验密度函数,我想在彼此之上绘制,以说明两条曲线的差异。正如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)
然而,我的曲线有时会重叠一点,很难分辨出哪一个,就像上面产生这个图的例子一样:
我真的想让这两个CDF的颜色不同。但是,我无法弄清楚如何做到这一点。有什么提示吗?
答案 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')