9

我有几个累积经验密度函数,我想将它们绘制在彼此之上,以说明两条曲线的差异。正如在上一个问题中所指出的,绘制 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 的颜色不同。但是,我不知道该怎么做。有小费吗?

4

3 回答 3

13

如果没记错的话,我过去曾这样做过。我记得,您需要像Ecdf()参数化的那样欺骗它。我认为help(ecdf)它暗示它只是一个阶梯函数图,因此您可以估计两个或多个 ecdf,绘制一个然后通过lines().

编辑 原来它很简单

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

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

于 2011-06-14T13:20:22.100 回答
7

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

Ecdf(rnorm(20), lwd = 2)
Ecdf(rnorm(20),add = TRUE, col = 'red', lty = 1)
于 2011-06-14T13:31:36.917 回答
0

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

set.seed(3)
mat <- cbind(rnorm(20), rnorm(20))
matplot(apply(mat, 2, sort), seq(20)/20, type='s')
于 2020-03-09T06:39:18.163 回答