在图中断开x轴

时间:2014-04-09 13:08:06

标签: r plot

我想打破我使用函数plot.stepfun的累积分布函数图的x轴,但似乎无法弄清楚如何。

以下是一些示例数据:

set.seed(1)
x <- sample(seq(1,20,0.01),300,replace=TRUE)

然后我使用函数ecdf来获得x:

的经验累积分布函数
x.cdf <- ecdf(x)

我将x.cdf的类更改为stepfun,因为我更倾向于使用plot.stepfun(也使用plot.ecdf直接调用plot.stepfun,但可能性较小自定义情节。)

class(x.cdf) <- "stepfun"

然后我可以按如下方式创建一个情节:

 plot(x.cdf, do.point=FALSE)

但是现在我想要在12到20之间分解x轴,例如使用axis.break [plotrix-library],例如here,但由于我没有普通的x和y参数用于绘图,我不知道该怎么做。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

&#34;将轴分开在12到20之间&#34;对我来说没有多大意义,因为20是x范围的结束,所以我将在12到15之间进行例证.plotrix.axis.break函数实际上并没有做很多事情(可以看出,如果您单步执行该示例。)它所做的就是在特定位置放置几个斜杠,&#34; breakpos&#34;。所有剩下的工作都需要通过常规的绘图功能完成,而plot.stepfun并没有真正设置好这样做,所以我使用常规的plot.default和type =&#34; s& #34;论点。您需要对x值,ecdf函数的参数和轴参数中的标签进行偏移。

png()
 plot( c(seq(1,12,0.1), seq(15,20,0.1)-3),  # Supply the range, shifted
         x.cdf(c(seq(1,12,0.1), seq(15,20,0.1))),  # calc domain values, not shifted
         type="s",  xaxt="n", xlab="X", ylab="Quantile")
 axis(1, at=c( 1:12, (16:20)-3), labels=c(1:12, (16:20)) ) #shift x's, labels unshifted
 axis.break(breakpos=12)
dev.off()

enter image description here