2016-02-27 95 views
3

默認情況下,geom_raster創建一個漸變圖例,該圖例略微超出數據限制。防止擴展guide_colourbar

例如:

library(ggplot2) 
p1 <- ggplot(data=cbind(expand.grid(x=1:10, y=1:10), z=seq(0, 100, length=100)), 
     aes(x=x, y=y, fill=z)) + 
    geom_raster() + 
    coord_equal() + 
    scale_x_continuous(expand=c(0, 0)) + 
    scale_y_continuous(expand=c(0, 0)) 

p1 

enter image description here

我可以防止顏色條從延伸超出這些限制(即,在上面的例子中0和100)?設置limits=c(0, 100)沒有幫助,並設置draw.ulimdraw.llimFALSE只是隱藏了極致蜱,但仍繪製相同的斜坡,如:

p1 + scale_fill_continuous(
    limits=c(0, 100), guide=guide_colorbar(draw.ulim=FALSE, draw.llim=FALSE)) 

enter image description here

回答

4

這樣做的原因行爲是彩條被分成'垃圾箱',標籤被放置在垃圾箱中間。由於默認箱數爲20,因此您會在色條末端的箱體中間看到滴答,並留出高於最高滴答和低於最低滴答的空間。通過nbin參數設置到一個更高的價值,你會使用這個行爲,你的優勢,因爲每個區間的高度是現在低得多和蜱的高度酷似垃圾箱的高度:

p1 + scale_fill_continuous(limits=c(0, 100), guide=guide_colorbar(nbin = 100)) 

這得出:

enter image description here

在傳說仔細看就會發現,在0100值的蜱正處在彩條的底部/頂部。