我想打破我使用函数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参数用于绘图,我不知道该怎么做。
非常感谢任何帮助!
答案 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()