[英]Break x-axis in 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)
但是现在我想将x轴分解为12到20之间,例如使用axis.break
[plotrix-library],例如here ,但是由于我没有用于绘制的普通x和y参数,所以我不知道如何去做这个。
任何帮助将不胜感激!
对我而言,“在12到20之间断开轴”没有太大意义,因为20是x范围的终点,因此我将举例说明在12到15之间断开轴。plotrix.axis.break函数不会实际上确实做了很多(如果您逐步看一下该示例,就可以看到。)它所做的只是在特定位置(“ breakpos”)放置了两个斜杠。 所有其余的工作都需要使用常规的绘图功能完成,并且plot.stepfun并未真正做到这一点,因此我将使用带有type =“ s”参数的常规plot.default。 您需要对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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.