2014-02-23 108 views
1

我正在使用格子包中的xyplot生成一個圖。我用下面的命令:強制點陣對所有座標軸刻度使用標籤

xyplot(Y ~ X | Bench, dt, type = 'o') 

這是結果:

sample image

在Y軸上有蜱無標籤(0.85)。有什麼辦法可以強制格子在打勾旁邊打印標籤(就像所有其他人一樣:1.00,0.95和0.90)?

編輯:我知道一些「手動」的方式來調整一個情節,使所有的蜱有一個相應的標籤。但是我所知道的方法取決於被繪製的實際數據,如果數據發生變化,可能需要進行調整。我正在尋找一個自動解決方案。像某種標誌,指示xyplot不留下沒有相關標籤的勾號。當然,這可能只是發生這樣一個標誌不存在......知道這也會有幫助。

+0

使用'ylim'說法。 –

+0

即'ylim = range(Y)' –

+0

@RScriv我知道我可以用'ylim'來調整一個圖形,直到所有的刻度都有標籤。我正在尋找更一般的解決方案。如果有勾號,則強制格子使用標籤。 – betabandido

回答

1

可以明確使用scales=參數,它會跳過自動軸標籤裁剪指定軸的刻度位置:

xyplot(..., scales=list(y=list(at=seq(.85, 1, .05)), x=list(at=...))) 

編輯:在這裏,你走了,更多的自動化:

axis.overlap <- function(..., components) { 
    components$bottom$labels$check.overlap <- FALSE 
    axis.default(..., components=components) 
} 

然後無論何時想要包含軸重疊標籤,都可以指定:

xyplot(Y ~ X | Bench, dt, axis=axis.overlap) 

或把它包起來,請你:

xyplot2 <- function(..., axis=axis.overlap) xyplot(..., axis=axis) 

xyplot2(Y ~ X | Bench, dt) 
+0

感謝您的提示。但是我已經更新了我的問題,以清楚地表明我正在尋找一種自動化解決方案,而不是特別的解決方案。 – betabandido

+0

感謝您的跟進。它工作得很好:) – betabandido