2016-02-27 126 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值的蜱正处在彩条的底部/顶部。