防止guide_colourbar的扩展

时间:2016-02-27 15:41:33

标签: r ggplot2

默认情况下,geom_raster会创建一个稍微超出数据限制的渐变图例。

例如:

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.llim设置为FALSE只会隐藏极端刻度,但仍会绘制相同的斜率,例如:

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

enter image description here

1 个答案:

答案 0 :(得分:4)

此行为的原因是颜色栏被分为“箱子”,标签放在箱子的中间。由于默认的箱数为20,您将在颜色栏末端的箱柜中间看到刻度线,在顶部刻度线上方和底部刻度线下方留出空格。通过将nbin参数设置为更高的值,您将使用此行为对您有利,因为每个bin的高度现在要低得多,并且刻度的高度类似于bin的高度:

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

给出:

enter image description here

仔细查看图例会发现0100值的刻度现在位于颜色条的底部/顶部。