2014-04-09 154 views
1

我想破壞累積分佈函數圖的x軸,對此,我使用函數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參數,所以我不知道該怎麼做。

任何幫助將非常感謝!

回答

4

「打破12到20之間的座標軸」對我來說沒有什麼意義,因爲20是x範圍的終點,所以我將舉例說明它在12到15之間。plotrix.axis.break函數實際上並沒有做太多的事情(如果你逐步瞭解這個例子就可以看出來)。它所做的只是在特定位置(「breakpos」)放置幾個斜槓。所有其餘的工作都需要使用常規的繪圖功能來完成,而plot.stepfun並沒有真正設置好,所以我使用了常規的plot.default和type =「s」參數。您需要執行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

+0

完美,謝謝! – Rob